lxml changelog
==============
+4.3.2 (2019-02-29)
+==================
+
+Bugs fixed
+----------
+
+* Crash in 4.3.1 when appending a child subtree with certain text nodes.
+
+Other changes
+-------------
+
+* Built with Cython 0.29.6.
+
+
4.3.1 (2019-02-08)
==================
+Bugs fixed
+----------
+
* LP#1814522: Crash when appending a child subtree that contains unsubstituted
entity references.
+Other changes
+-------------
+
+* Built with Cython 0.29.5.
+
4.3.0 (2019-01-04)
==================
wheel_manylinux32 wheel_manylinux64: dist/lxml-$(LXMLVERSION).tar.gz
time docker run --rm -t \
-v $(shell pwd):/io \
- -e CFLAGS="-O3 -g1 -mtune=generic -pipe -fPIC -flto" \
+ -e CFLAGS="-O3 -g1 -march=core2 -pipe -fPIC -flto" \
-e LDFLAGS="$(LDFLAGS) -flto" \
-e LIBXML2_VERSION="$(MANYLINUX_LIBXML2_VERSION)" \
-e LIBXSLT_VERSION="$(MANYLINUX_LIBXSLT_VERSION)" \
Metadata-Version: 2.1
Name: lxml
-Version: 4.3.1
+Version: 4.3.2
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
as soon as a maintenance branch has been established. Note that this
requires Cython to be installed at an appropriate version for the build.
- 4.3.1 (2019-02-08)
+ 4.3.2 (2019-02-29)
==================
- * LP#1814522: Crash when appending a child subtree that contains unsubstituted
- entity references.
+ Bugs fixed
+ ----------
+
+ * Crash in 4.3.1 when appending a child subtree with certain text nodes.
+
+ Other changes
+ -------------
+
+ * Built with Cython 0.29.6.
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="lxml-faq-frequently-asked-questions">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
<p>Frequently asked questions on lxml. See also the notes on <a class="reference external" href="compatibility.html">compatibility</a> to
<a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a>.</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="apis-specific-to-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">APIs specific to lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">APIs specific to lxml.etree</h1>
<p>lxml.etree tries to follow established APIs wherever possible. Sometimes,
however, the need to expose a feature in an easy way led to the invention of a
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_pop_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_copy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_set_tail_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty
lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_other lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace_reversed lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
lxml.tests.test_elementtree._ETreeTestCaseBase.test_treebuilder_target lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_remove_while_iterating lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating
lxml.tests.test_elementtree._ETreeTestCaseBase.test_replace_slice_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail
lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail_set_twice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element
lxml.tests.test_elementtree._ETreeTestCaseBase.test_weird_dict_interaction lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction
lxml.tests.test_elementtree._ETreeTestCaseBase.test_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iter_remove_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem
lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_clear_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_clear_sub lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tag_reset_root_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step_negative lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_error_none lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_negative2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2
lxml.tests.test_elementtree._ETreeTestCaseBase.test_ns_decl_tostring_root lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
lxml.tests.test_elementtree._ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree._ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_manipulation lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_escape_in lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_default_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace
lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_pop_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_copy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_set_tail_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty
lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_other lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace_reversed lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
lxml.tests.test_elementtree._ETreeTestCaseBase.test_treebuilder_target lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_remove_while_iterating lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating
lxml.tests.test_elementtree._ETreeTestCaseBase.test_replace_slice_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail
lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail_set_twice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element
lxml.tests.test_elementtree._ETreeTestCaseBase.test_weird_dict_interaction lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction
lxml.tests.test_elementtree._ETreeTestCaseBase.test_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iter_remove_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem
lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_clear_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_clear_sub lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tag_reset_root_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step_negative lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_error_none lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_negative2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2
lxml.tests.test_elementtree._ETreeTestCaseBase.test_ns_decl_tostring_root lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
lxml.tests.test_elementtree._ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree._ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_manipulation lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_escape_in lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_default_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace
lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_pop_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_copy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_set_tail_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty
lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
lxml.tests.test_elementtree.ElementTreeTestCase.setUpClass lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_other lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace_reversed lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed
lxml.tests.test_elementtree._ETreeTestCaseBase.test_treebuilder_target lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attrib lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_remove_while_iterating lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating
lxml.tests.test_elementtree._ETreeTestCaseBase.test_replace_slice_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail
lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail_set_twice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element
lxml.tests.test_elementtree._ETreeTestCaseBase.test_weird_dict_interaction lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction
lxml.tests.test_elementtree._ETreeTestCaseBase.test_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iter_remove_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem
lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_clear_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_subelement lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_clear_sub lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tag_reset_root_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step_negative lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_error_none lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_negative2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2
lxml.tests.test_elementtree._ETreeTestCaseBase.test_ns_decl_tostring_root lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
lxml.tests.test_elementtree._ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree._ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_manipulation lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_escape_in lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_default_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_insert lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_html lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_all_replace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace
lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_pop_unknown lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attrib_copy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_set_tail_empty lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty
lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_xmlns_move lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delitem_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_remove_while_iterating lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating
lxml.tests.test_elementtree._ETreeTestCaseBase.test_replace_slice_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail
lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail_set_twice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice
lxml.tests.test_elementtree._ETreeTestCaseBase._check_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element
lxml.tests.test_elementtree._ETreeTestCaseBase.test_tag_str_subclass lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass
lxml.tests.test_elementtree._ETreeTestCaseBase.test_element lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iter_remove_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem
lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_clear_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
lxml.tests.test_elementtree._ETreeTestCaseBase.test_clear_sub lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub
lxml.tests.test_elementtree._ETreeTestCaseBase.test_element_indexing_with_text lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_step_negative lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_error_none lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none
lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_attribute_resolve_new lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new
lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse
lxml.tests.test_elementtree._ETreeTestCaseBase.test_delslice_negative2 lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2
lxml.tests.test_elementtree._ETreeTestCaseBase.test_ns_decl_tostring_root lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root
lxml.tests.test_elementtree._ETreeTestCaseBase.test_deepcopy_namespaces lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces
-lxml.tests.test_elementtree._ETreeTestCaseBase._test_getchildren lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren
lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_file_encoding lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding
lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_manipulation lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation
lxml.tests.test_elementtree._ETreeTestCaseBase.test_text_escape_in lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TABLE">TABLE</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_generator_close_continues_closing">test_generator_close_continues_closing()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#table_tags">table_tags</a><br />
<span class="index-where">(in <a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_generator_close_continues_closing">test_generator_close_continues_closing()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren">test_getchildren()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tag">tag</a><br />
<span class="index-where">(in <a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tag">tag</a><br />
<span class="index-where">(in <a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag">tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare">tag_compare()</a><br />
<span class="index-where">(in <a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#tags">tags</a><br />
<span class="index-where">(in <a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tail">tail</a><br />
<span class="index-where">(in <a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tail">tail</a><br />
<span class="index-where">(in <a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#target">target</a><br />
<span class="index-where">(in <a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TBODY">TBODY</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TD">TD</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown()</a><br />
<span class="index-where">(in <a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#tearDown">tearDown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown">tearDown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#temp_install">temp_install()</a><br />
<span class="index-where">(in <a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html5_doctype">test_html5_doctype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test__str">test__str()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr">test_addattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element">test_addattr_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_list">test_addattr_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_html_decl">test_html_decl()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser">test_html_feed_parser()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_chunky">test_html_feed_parser_chunky()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_feed_parser_more_tags">test_html_feed_parser_more_tags()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_fromstring_target_exceptions">test_html_fromstring_target_exceptions()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_ids">test_html_ids()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_ids_no_collect_ids">test_html_ids_no_collect_ids()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken">test_html_iterparse_broken()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_broken_no_recover">test_html_iterparse_broken_no_recover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_stop_short">test_html_iterparse_stop_short()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_anonymous_namespace">test_anonymous_namespace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.AsyncXmlFileTestCase-class.html">AsyncXmlFileTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_exceptions">test_html_parser_target_exceptions()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.AsyncXmlFileTestCase-class.html">AsyncXmlFileTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_as_attrib">test_attrib_as_attrib()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote">test_html_subelement_name_quote()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space">test_html_subelement_name_space()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html">test_htmlparser</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client">test_http_client()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attrib_order">test_attrib_order()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html">test_http_io</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_ietf_decl">test_ietf_decl()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_ietf_decl">test_ietf_decl()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.EncodingsTestCase-class.html#test_illegal_utf8">test_illegal_utf8()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.EncodingsTestCase-class.html#test_illegal_utf8_recover">test_illegal_utf8_recover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_include_paths">test_include_paths()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html">test_incremental_xmlfile</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute">test_attribute()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementpath-module.html">lxml.tests.test_elementpath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare-module.html">lxml.tests.test_doctestcompare</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute_extra">test_attribute_extra()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_name_interning">test_insert_name_interning()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementpath-module.html">lxml.tests.test_elementpath</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute_extra_duplicate">test_attribute_extra_duplicate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_external_document-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_external_document-module.html">lxml.tests.test_external_document</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_internal_dtds">test_internal_dtds()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_invalid_decl_1">test_invalid_decl_1()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_external_document-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_external_document-module.html">lxml.tests.test_external_document</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_invalid_decl_2">test_invalid_decl_2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
-</tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
+</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html">test_io</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail">test_iter_remove_tail()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail">test_iteration_clear_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_attribute_quoting">test_attribute_quoting()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_attribute_quoting_unicode">test_attribute_quoting_unicode()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_attribute_quoting">test_attribute_quoting()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_attribute_quoting_unicode">test_attribute_quoting_unicode()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty">test_iteration_set_tail_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_nonstring">test_attribute_set_nonstring()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_nonstring">test_attribute_set_nonstring()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_posarg">test_iterchildren_tag_multiple_posarg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_posarg">test_iterchildren_tag_posarg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute">test_boolean_attribute()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute_round_trip">test_boolean_attribute_round_trip()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute">test_boolean_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute_xml_adds_empty_string">test_boolean_attribute_xml_adds_empty_string()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute_round_trip">test_boolean_attribute_round_trip()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#test_buffering">test_buffering()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_multi_recover">test_iterparse_broken_multi_recover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_boolean_attribute_xml_adds_empty_string">test_boolean_attribute_xml_adds_empty_string()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_buffering">test_buffering()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken_recover">test_iterparse_broken_recover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#test_buffering">test_buffering()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_buffering">test_buffering()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_end">test_iterparse_file_dtd_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd_start">test_iterparse_file_dtd_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_incomplete">test_iterparse_incomplete()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html#test_cache">test_cache()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_cdata">test_cdata()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_html_with_tail">test_tostring_method_html_with_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html#test_cache">test_cache()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_cdata">test_cdata()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_cdata_solo">test_cdata_solo()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_tail">test_cdata_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_cdata_solo">test_cdata_solo()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_tail">test_cdata_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf16_bom">test_iterparse_utf16_bom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_attribute()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_iterparse_utf8_bom">test_iterparse_utf8_bom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child">test_child()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child">test_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr">test_child_getattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr">test_child_getattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg">test_child_index_neg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter">test_child_iter()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg">test_child_index_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len">test_child_len()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter">test_child_iter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant">test_child_nonexistant()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_end_skip">test_iterwalk_end_skip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len">test_child_len()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_ns_nons">test_child_ns_nons()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant">test_child_nonexistant()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro">test_child_set_ro()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_ns_skip">test_iterwalk_ns_skip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_ns_nons">test_child_ns_nons()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup">test_class_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro">test_child_set_ro()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup">test_class_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_type_mismatch">test_class_lookup_type_mismatch()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_skip">test_iterwalk_start_end_skip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_tags">test_iterwalk_start_end_tags()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_type_mismatch">test_class_lookup_type_mismatch()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end_tags_with_root">test_iterwalk_start_end_tags_with_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_tags">test_iterwalk_start_tags()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html">test_classlookup</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision">test_type_float_precision()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_clean_doctype">test_clean_doctype()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_large_sourceline_XML">test_large_sourceline_XML()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float_precision_consistency">test_type_float_precision_consistency()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html">test_classlookup</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_clean_doctype">test_clean_doctype()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_closing_out_of_order_in_error_case">test_closing_out_of_order_in_error_case()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_closing_out_of_order_in_error_case">test_closing_out_of_order_in_error_case()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_comment_before_dtd">test_comment_before_dtd()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_comment_before_dtd">test_comment_before_dtd()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable_attrib">test_comment_immutable_attrib()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable_attrib">test_comment_immutable_attrib()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_comments_fallback">test_comments_fallback()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_attribute_names_in_dicts">test_concurrent_attribute_names_in_dicts()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_comments_fallback">test_comments_fallback()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup">test_concurrent_class_lookup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_attribute_names_in_dicts">test_concurrent_attribute_names_in_dicts()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies">test_concurrent_proxies()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup">test_concurrent_class_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren">test_countchildren()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies">test_concurrent_proxies()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren">test_countchildren()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element">test_create_element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_unescaped_script">test_unescaped_script()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default">test_create_element_default()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_unescaped_script_incremental">test_unescaped_script_incremental()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element">test_create_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_create_from_partial_doc">test_create_from_partial_doc()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default">test_create_element_default()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html">test_css</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_method_context_manager_misuse">test_method_context_manager_misuse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_create_from_partial_doc">test_create_from_partial_doc()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html#test_cssselect">test_cssselect()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_missing_attributes">test_missing_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html">test_css</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_missing_children">test_missing_children()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html#test_cssselect">test_cssselect()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html">test_module_parse_html()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_default_doctype">test_module_parse_html_default_doctype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error">test_module_parse_html_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash_repr">test_data_element_float_hash_repr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_precision">test_data_element_float_precision()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover">test_module_parse_html_norecover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash_repr">test_data_element_float_hash_repr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_precision">test_data_element_float_precision()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_attributes">test_namespace_cleanup_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_deep">test_namespace_cleanup_deep()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_deep_to_top">test_namespace_cleanup_deep_to_top()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_keep_prefixes">test_namespace_cleanup_keep_prefixes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_keep_prefixes_top">test_namespace_cleanup_keep_prefixes_top()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup_many">test_namespace_cleanup_many()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_anonymous">test_namespace_nested_anonymous()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.EncodingsTestCase-class.html">EncodingsTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nsmap">test_namespace_nsmap()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_other">test_namespaces_default_and_other()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace_and_other">test_nested_default_namespace_and_other()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_non_io_exception_continues_closing">test_non_io_exception_continues_closing()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_apos">test_declaration_apos()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_escape_quote_pid">test_declaration_escape_quote_pid()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_write_fails">test_write_fails()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_apos">test_declaration_apos()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_quote_withoutpid">test_declaration_quote_withoutpid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_escape_quote_pid">test_declaration_escape_quote_pid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_declaration_quote_withoutpid">test_declaration_quote_withoutpid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_doctype">test_write_gzip_doctype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi_dtd">test_deepcopy_pi_dtd()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_write_namespaced_element">test_write_namespaced_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver_recursive">test_xinclude_resolver_recursive()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup_pull_parser">test_default_class_lookup_pull_parser()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_comment_error">test_xmlschema_comment_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_error_log">test_xmlschema_error_log()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_error_log_path">test_xmlschema_error_log_path()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_attributes">test_differing_attributes()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file">test_xmlschema_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_differing_tags">test_differing_tags()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_illegal_validation_error">test_xmlschema_illegal_validation_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html">test_objectify</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html#test_open_namespaced_element">test_open_namespaced_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.HtmlFileTestCase-class.html">HtmlFileTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare-module.html">test_doctestcompare</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_incomplete">test_xmlschema_iterparse_incomplete()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_api_internal">test_dtd_api_internal()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd">test_parse_file_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid_duplicate_id">test_dtd_invalid_duplicate_id()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_file_url">test_dtd_parse_valid_file_url()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative_file_url">test_dtd_parse_valid_relative_file_url()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_parse_utf8_bom">test_parse_utf8_bom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix">test_parser_input_mix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_no_id_dict">test_parser_target_feed_no_id_dict()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_pi">test_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_context_node">test_xpath_on_context_node()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_default_ns_prefix">test_element_sax_default_ns_prefix()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html">NSPrefixSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_xpath_on_foreign_context_node">test_xpath_on_foreign_context_node()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_elementtree()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_default_ns_prefix">test_element_sax_default_ns_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_ns_prefix">test_element_sax_ns_prefix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html">NSPrefixSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_twin_ns_prefix">test_element_sax_twin_ns_prefix()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html">NSPrefixSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_ns_prefix">test_element_sax_ns_prefix()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html">NSPrefixSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html#test_element_sax_twin_ns_prefix">test_element_sax_twin_ns_prefix()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.NSPrefixSaxTestCase-class.html">NSPrefixSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_empty">test_element_write_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings">test_proxy_collect_siblings()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_proxy_collect_siblings_text">test_proxy_collect_siblings_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_empty">test_element_write_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html">test_elementpath</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt">test_xslt()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath-module.html">test_elementpath</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc">test_proxy_reuse_after_gc()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_apply_error_log">test_xslt_apply_error_log()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target">test_pull_from_simple_target()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_broken()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_simple_target_start_end">test_pull_from_simple_target_start_end()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder">test_pull_from_tree_builder()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath">test_elementtree_getelementpath()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.XMLPullParserTest-class.html#test_pull_from_tree_builder_subclass">test_pull_from_tree_builder_subclass()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.XMLPullParserTest-class.html">XMLPullParserTest</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath_ns">test_elementtree_getelementpath_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath">test_elementtree_getelementpath()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_getelementpath_ns">test_elementtree_getelementpath_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_XML()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML_resolver">test_xslt_document_XML_resolver()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_empty_decl">test_empty_decl()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_empty_decl">test_empty_decl()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_none">test_qname_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_multiple_parameters">test_xslt_multiple_parameters()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid">test_xslt_parameter_invalid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_missing">test_xslt_parameter_missing()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append_parsed">test_entity_append_parsed()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath">test_xslt_parameter_xpath()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append_parsed">test_entity_append_parsed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry">test_registry()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean">test_rel_xpath_boolean()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements">test_rel_xpath_list_elements()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_equal_input">test_equal_input()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html">test_relaxng</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng">test_relaxng()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_equal_input">test_equal_input()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact">test_relaxng_compact()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact_file_obj">test_relaxng_compact_file_obj()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html#test_relaxng_compact_str">test_relaxng_compact_str()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.RelaxNGCompactTestCase-class.html">RelaxNGCompactTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error">test_relaxng_elementtree_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error">test_relaxng_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_generic_error">test_relaxng_generic_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include">test_relaxng_include()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema">test_relaxng_invalid_schema()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2">test_relaxng_invalid_schema2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3">test_relaxng_invalid_schema3()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4">test_relaxng_invalid_schema4()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut">test_relaxng_shortcut()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating">test_remove_while_iterating()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_write_output_failure">test_xslt_write_output_failure()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_write_output_file">test_xslt_write_output_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_write_output_file_path">test_xslt_write_output_file_path()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests-module.html">tests</a><br />
<span class="index-where">(in <a href="lxml-module.html">lxml</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#text">text</a><br />
<span class="index-where">(in <a href="lxml.etree.QName-class.html">QName</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#text">text</a><br />
<span class="index-where">(in <a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#text">text</a><br />
<span class="index-where">(in <a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#text">text</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#text">text</a><br />
<span class="index-where">(in <a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare">text_compare()</a><br />
<span class="index-where">(in <a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#text_content">text_content()</a><br />
<span class="index-where">(in <a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TEXTAREA">TEXTAREA</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html">TextareaElement</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TFOOT">TFOOT</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom_multiple_namespaces">test_sax_to_pulldom_multiple_namespaces()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TH">TH</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom_multiple_namespaces">test_sax_to_pulldom_multiple_namespaces()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#THEAD">THEAD</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_fail_on_report">test_schematron_fail_on_report()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_fail_on_report">test_schematron_fail_on_report()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_external_document-module.html">test_external_document</a><br />
+<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_external_document.ExternalDocumentTestCase-class.html#test_external_document_adoption">test_external_document_adoption()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_external_document.ExternalDocumentTestCase-class.html">ExternalDocumentTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_external_document-module.html">test_external_document</a><br />
-<span class="index-where">(in <a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_attributes">test_extra_attributes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_external_document.ExternalDocumentTestCase-class.html#test_external_document_adoption">test_external_document_adoption()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_external_document.ExternalDocumentTestCase-class.html">ExternalDocumentTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_children">test_extra_children()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_attributes">test_extra_attributes()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#this_dir">this_dir</a><br />
<span class="index-where">(in <a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html#test_extra_children">test_extra_children()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_doctestcompare.DoctestCompareTest-class.html">DoctestCompareTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a><br />
<span class="index-where">(in <a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold">threshold</a><br />
<span class="index-where">(in <a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html" onclick="show_private();">InsensitiveSequenceMatcher</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TITLE">TITLE</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#tmpfile">tmpfile()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.Classes-class.html#toggle">toggle()</a><br />
<span class="index-where">(in <a href="lxml.html.Classes-class.html">Classes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html">token</a><br />
<span class="index-where">(in <a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize">tokenize()</a><br />
<span class="index-where">(in <a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#tokenize_annotated">tokenize_annotated()</a><br />
<span class="index-where">(in <a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_set_decl_html">test_set_decl_html()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#top_level_tags">top_level_tags</a><br />
<span class="index-where">(in <a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover_no_id_dict">test_feed_parser_recover_no_id_dict()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_public">test_set_decl_public()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_set_decl_html">test_set_decl_html()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#tostring">tostring()</a><br />
<span class="index-where">(in <a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_system">test_set_decl_system()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_public">test_set_decl_public()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#tostring">tostring()</a><br />
<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html" onclick="show_private();">_XMLPullParserTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_set_decl_system">test_set_decl_system()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#tostringlist">tostringlist()</a><br />
<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_not_closing">test_filelike_not_closing()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree-module.html#tounicode">tounicode()</a><br />
<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_close">test_filelike_close()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html#test_find">test_find()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TR">TR</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#test_filelike_not_closing">test_filelike_not_closing()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#TREE">TREE</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html#test_find">test_find()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementpath.EtreeElementPathTestCase-class.html">EtreeElementPathTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC">TREE_INVALID_DEC</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX">TREE_INVALID_HEX</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_empty_prefix">test_findall_empty_prefix()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_NOT_UTF8">TREE_NOT_UTF8</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#TREE_PYTYPE">TREE_PYTYPE</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_empty_prefix">test_findall_empty_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY">TREE_UNTERMINATED_ENTITY</a><br />
<span class="index-where">(in <a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a><br />
<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#test_flush">test_flush()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TT">TT</a><br />
<span class="index-where">(in <a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_flush">test_flush()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type">type</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html#test_flush">test_flush()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile.TempPathXmlFileTestCase-class.html">TempPathXmlFileTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#type">type</a><br />
<span class="index-where">(in <a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_flush">test_flush()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#type_check">type_check</a><br />
<span class="index-where">(in <a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type_name">type_name</a><br />
<span class="index-where">(in <a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<span class="index-where">(in <a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.html.diff.token-class.html" onclick="show_private();">token</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_multiple_extension_elements_with_output_parent">_test_multiple_extension_elements_with_output_parent()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ne__">__ne__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_multiple_extension_elements_with_output_parent">_test_multiple_extension_elements_with_output_parent()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle">_test_pickle()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__ne__">__ne__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle">_test_pickle()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__neg__">__neg__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode">_test_xpath_compile_unicode()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.AncestorsIterator-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.AncestorsIterator-class.html" onclick="show_private();">AncestorsIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode">_test_xpath_compile_unicode()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#_typemap">_typemap</a><br />
+<span class="index-where">(in <a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.AttributeBasedElementClassLookup-class.html">AttributeBasedElementClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#_typemap">_typemap</a><br />
-<span class="index-where">(in <a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_validation_errors">_validation_errors</a><br />
+<span class="index-where">(in <a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.C14NError-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.C14NError-class.html">C14NError</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__reversed__">__reversed__()</a><br />
<span class="index-where">(in <a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_validation_errors">_validation_errors</a><br />
-<span class="index-where">(in <a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html">_Validator</a><br />
+<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.CDATA-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.CDATA-class.html">CDATA</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rlshift__">__rlshift__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html">_Validator</a><br />
-<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_wrap_et_loader">_wrap_et_loader()</a><br />
+<span class="index-where">(in <a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.CommentBase-class.html">CommentBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmod__">__rmod__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_wrap_et_loader">_wrap_et_loader()</a><br />
-<span class="index-where">(in <a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmod__">__rmod__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmul__">__rmul__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DTDError-class.html">DTDError</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmul__">__rmul__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DTDParseError-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DTDParseError-class.html">DTDParseError</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ror__">__ror__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_xml_schema_root">_xml_schema_root</a><br />
+<span class="index-where">(in <a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DTDValidateError-class.html">DTDValidateError</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rpow__">__rpow__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_xml_schema_root">_xml_schema_root</a><br />
-<span class="index-where">(in <a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html">_XmlFileTestCaseBase</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rrshift__">__rrshift__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html">_XmlFileTestCaseBase</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html">_XMLPullParserTest</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.DocumentInvalid-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.DocumentInvalid-class.html">DocumentInvalid</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rshift__">__rshift__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._XMLPullParserTest-class.html">_XMLPullParserTest</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html">_XPathEvaluatorBase</a><br />
+<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rsub__">__rsub__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html">_XPathEvaluatorBase</a><br />
-<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_xslt_setup">_xslt_setup()</a><br />
+<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ETXPath-class.html">ETXPath</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rtruediv__">__rtruediv__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#_xslt_setup">_xslt_setup()</a><br />
-<span class="index-where">(in <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html">_XSLTProcessingInstruction</a><br />
+<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__new__">__new__()</a><br />
<span class="index-where">(in <a href="lxml.etree.ElementBase-class.html">ElementBase</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rxor__">__rxor__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html">_XSLTProcessingInstruction</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html">_XSLTResultTree</a><br />
<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
</tr>
<tr>
<span class="index-where">(in <a href="lxml.etree.ElementChildIterator-class.html" onclick="show_private();">ElementChildIterator</a>)</span></td>
<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setattr__">__setattr__()</a><br />
<span class="index-where">(in <a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html">_XSLTResultTree</a><br />
-<span class="index-where">(in <a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"> </td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="lxml.etree.ElementClassLookup-class.html#__new__">__new__()</a><br />
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a href="lxml.builder-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'ET': <capsule object "PyObject *" at 0x7f9bafe9da50>,
- 'partial': <capsule object "PyObject *" at 0x7f9bafe9da80>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f9baf<code class="variable-ellipsis">...</code></code>
+ <a href="lxml.builder-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'ET': <capsule object "PyObject *" at 0x7f6cce0ac270>,
+ 'partial': <capsule object "PyObject *" at 0x7f6cce0ac2a0>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f6cce<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f9bafe9da50><code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">partial</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f9bafe9da80><code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">ET</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f6cce0ac270><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">partial</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *" at 0x7f6cce0ac2a0><code class="variable-group">}</code>
</pre></td></tr></table>
</dd>
</dl>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<hr />
<div class="fields"> <p><strong>Version:</strong>
- 4.3.1
+ 4.3.2
</p>
</div><!-- ==================== CLASSES ==================== -->
<a name="section-Classes"></a>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a name="LXML_VERSION"></a><span class="summary-name">LXML_VERSION</span> = <code title="(4, 3, 1, 0)"><code class="variable-group">(</code>4<code class="variable-op">, </code>3<code class="variable-op">, </code>1<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+ <a name="LXML_VERSION"></a><span class="summary-name">LXML_VERSION</span> = <code title="(4, 3, 2, 0)"><code class="variable-group">(</code>4<code class="variable-op">, </code>3<code class="variable-op">, </code>2<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
</td>
</tr>
<tr class="private">
<span class="summary-type"> </span>
</td><td class="summary">
<a href="lxml.etree-module.html#__pyx_capi__" class="summary-name" onclick="show_private();">__pyx_capi__</a> = <code title="{'adoptExternalDocument': <capsule object "struct LxmlElementTree *(xm\
-lDoc *, PyObject *, int)" at 0x7f9bb4249f30>,
+lDoc *, PyObject *, int)" at 0x7f6cd29a50c0>,
'appendChild': <capsule object "void (struct LxmlElement *, struct Lx\
-mlElement *)" at 0x7f9bb425a750>,
+mlElement *)" at 0x7f6cd29a58a0>,
'appendChildToElement': <capsule object "int (struct LxmlElement *, s\
-truct LxmlElement *)" at 0x7f9bb425a780>,
+truct LxmlElement *)" at 0x7f6cd29a58d0>,
'attributeValue': <capsule object "PyObject *(xmlNode *, xmlAttr *)" \
-at 0x7f9bb425a420>,
+at 0x7f6cd29a5570>,
..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">adoptExternalDocument</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "stru<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">adoptExternalDocument</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "struct LxmlElementTree *(xm<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-lDoc *, PyObject *, int)" at 0x7f9bb4249f30><code class="variable-op">,</code>
+lDoc *, PyObject *, int)" at 0x7f6cd29a50c0><code class="variable-op">,</code>
<code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "void (struct LxmlElement *, struct Lx<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-mlElement *)" at 0x7f9bb425a750><code class="variable-op">,</code>
+mlElement *)" at 0x7f6cd29a58a0><code class="variable-op">,</code>
<code class="variable-quote">'</code><code class="variable-string">appendChildToElement</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "int (struct LxmlElement *, s<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-truct LxmlElement *)" at 0x7f9bb425a780><code class="variable-op">,</code>
+truct LxmlElement *)" at 0x7f6cd29a58d0><code class="variable-op">,</code>
<code class="variable-quote">'</code><code class="variable-string">attributeValue</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(xmlNode *, xmlAttr *)" <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-at 0x7f9bb425a420><code class="variable-op">,</code>
+at 0x7f6cd29a5570><code class="variable-op">,</code>
<code class="variable-ellipsis">...</code>
</pre></td></tr></table>
</dd>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a name="filename"></a><span class="summary-name">filename</span>
+ <a name="filename"></a><span class="summary-name">filename</span><br />
+ The file path where the report originated, if any.
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a name="message"></a><span class="summary-name">message</span>
+ <a name="message"></a><span class="summary-name">message</span><br />
+ The log message string.
</td>
</tr>
<tr>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<hr />
<div class="fields"> <p><strong>Version:</strong>
- 4.3.1
+ 4.3.2
</p>
</div><!-- ==================== CLASSES ==================== -->
<a name="section-Classes"></a>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a href="lxml.sax-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'_getNsTag': <capsule object "PyObject *(PyObject *)" at 0x7f9baf60e6\
-c0>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(PyObj<code class="variable-ellipsis">...</code></code>
+ <a href="lxml.sax-module.html#__pyx_capi__" class="summary-name">__pyx_capi__</a> = <code title="{'_getNsTag': <capsule object "PyObject *(PyObject *)" at 0x7f6ccdd4ff\
+00>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(PyObj<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
<dl class="fields">
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(PyObject *)" at 0x7f9baf60e6<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-c0><code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">_getNsTag</code><code class="variable-quote">'</code><code class="variable-op">: </code><capsule object "PyObject *(PyObject *)" at 0x7f6ccdd4ff<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+00><code class="variable-group">}</code>
</pre></td></tr></table>
</dd>
</dl>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-896', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
</div><a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_crash"></a><div id="_ETreeTestCaseBase.test_iteration_crash-def"><a name="L792"></a><tt class="py-lineno"> 792</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_crash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_crash-expanded"><a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-comment"># this would cause a crash in the past</tt> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_set_tail_empty"></a><div id="_ETreeTestCaseBase.test_iteration_set_tail_empty-def"><a name="L792"></a><tt class="py-lineno"> 792</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_set_tail_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_set_tail_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty">test_iteration_set_tail_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_set_tail_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_set_tail_empty-expanded"><a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-comment"># this would cause a crash in the past</tt> </tt>
<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt id="link-897" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-899', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt id="link-900" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-900', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-901" class="py-name"><a title="lxml.etree
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt id="link-900" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-900', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-901" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.html5parser.fromstring
+lxml.html.soupparser.fromstring
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-901', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><p></p>x</html>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-902" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-902', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-903" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-903', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_clear_tail"></a><div id="_ETreeTestCaseBase.test_iteration_clear_tail-def"><a name="L799"></a><tt class="py-lineno"> 799</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_clear_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_clear_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail">test_iteration_clear_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_clear_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_clear_tail-expanded"><a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt class="py-comment"># this would cause a crash in the past</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt id="link-904" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.html5parser.fromstring
+lxml.html.soupparser.fromstring
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-904', 'fromstring', 'link-805');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-901', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-902" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-905', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-906" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-902', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><p></p>x</html>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-903', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-904" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-904', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_reversed"></a><div id="_ETreeTestCaseBase.test_iteration_reversed-def"><a name="L799"></a><tt class="py-lineno"> 799</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_reversed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_reversed-expanded"><a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt id="link-905" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-906', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt id="link-907" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-907', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-908" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.html5parser.fromstring
+lxml.html.soupparser.fromstring
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-908', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><p></p>x</html>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-909" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-909', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-910" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-910', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_reversed"></a><div id="_ETreeTestCaseBase.test_iteration_reversed-def"><a name="L806"></a><tt class="py-lineno"> 806</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_reversed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_reversed-expanded"><a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> <tt id="link-911" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-905', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-906" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-911', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-906', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-912', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-907', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt id="link-908" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-908', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-909" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-913', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt id="link-914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-914', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-915" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-909', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-910" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-910', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">reversed</tt><tt class="py-op">(</tt><tt id="link-911" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-911', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-912', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-915', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-916" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-916', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">reversed</tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-917', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-918', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-913', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_subelement"></a><div id="_ETreeTestCaseBase.test_iteration_subelement-def"><a name="L807"></a><tt class="py-lineno"> 807</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_subelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_subelement-expanded"><a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt id="link-914" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-919', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_subelement"></a><div id="_ETreeTestCaseBase.test_iteration_subelement-def"><a name="L814"></a><tt class="py-lineno"> 814</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_subelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_subelement-expanded"><a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt id="link-920" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-914', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-915" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-920', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-915', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-921', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-916', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt id="link-917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-917', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-918" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-922', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt id="link-923" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-923', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-924" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-918', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-919" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-919', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt id="link-920" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-924', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-925', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt id="link-926" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-920', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-921" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-921', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-922', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-926', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-927" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-927', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-928', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-923', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-924" class="py-name"><a title="lxml.html.CheckboxValues.add
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-929', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-930" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-924', 'add', 'link-74');">add</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-925" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-930', 'add', 'link-74');">add</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-925', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-926', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-927" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-927', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">)</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt id="link-928" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-931', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-932', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-933" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-933', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">)</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt id="link-934" class="py-name"><a title="lxml.html.CheckboxValues.add
lxml.html.Classes.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-928', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_del_child"></a><div id="_ETreeTestCaseBase.test_iteration_del_child-def"><a name="L820"></a><tt class="py-lineno"> 820</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_del_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_del_child');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_del_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_del_child-expanded"><a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt id="link-929" class="py-name"><a title="lxml.etree.XML
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-934', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_del_child"></a><div id="_ETreeTestCaseBase.test_iteration_del_child-def"><a name="L827"></a><tt class="py-lineno"> 827</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_del_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_del_child');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_del_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_del_child-expanded"><a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt id="link-935" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-929', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-935', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-930', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-936', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-937" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-931', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt id="link-932" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-932', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-933" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-937', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt id="link-938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-938', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-939" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-933', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-934" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-934', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-935" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-935', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-936', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-937" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-939', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-940" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-940', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two>Two</two>Hm<three/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-941', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-942" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-942', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-937', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-938', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_double"></a><div id="_ETreeTestCaseBase.test_iteration_double-def"><a name="L830"></a><tt class="py-lineno"> 830</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_double-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_double');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_double-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_double-expanded"><a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt id="link-939" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-943', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt id="link-944" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-944', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_double"></a><div id="_ETreeTestCaseBase.test_iteration_double-def"><a name="L837"></a><tt class="py-lineno"> 837</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_double-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_double');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_double-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_double-expanded"><a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt id="link-945" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-939', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-945', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-940', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-946', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-941', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt id="link-942" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-942', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-943" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-947', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt id="link-948" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-948', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-949" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-943', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-944" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-944', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el0</tt> <tt class="py-keyword">in</tt> <tt id="link-945" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-945', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-946', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el0</tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-949', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-950', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc><one/><two/></doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el0</tt> <tt class="py-keyword">in</tt> <tt id="link-951" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-951', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-952" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-952', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el0</tt><tt class="py-op">.</tt><tt id="link-953" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-947', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el1</tt> <tt class="py-keyword">in</tt> <tt id="link-948" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-948', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-949" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-949', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-953', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el1</tt> <tt class="py-keyword">in</tt> <tt id="link-954" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-954', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-955" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-955', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-950', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt id="link-951" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-951', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_itertext"></a><div id="_ETreeTestCaseBase.test_itertext-def"><a name="L842"></a><tt class="py-lineno"> 842</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_itertext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext-expanded"><a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt id="link-952" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-956', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt id="link-957" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-957', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_itertext"></a><div id="_ETreeTestCaseBase.test_itertext-def"><a name="L849"></a><tt class="py-lineno"> 849</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_itertext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext-expanded"><a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt id="link-958" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-952', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-953" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-958', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-953', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-959', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-954', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> <tt id="link-955" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-955', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-956" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-960', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> <tt id="link-961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-961', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-962" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-956', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-957" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-957', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<root>RTEXT<a></a>ATAIL<b/><c>CTEXT</c>CTAIL</root>"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> <tt id="link-958" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-962', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-963" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-963', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<root>RTEXT<a></a>ATAIL<b/><c>CTEXT</c>CTAIL</root>"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> <tt id="link-964" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-958', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-959" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-959', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-960" class="py-name" targets="Method lxml.etree._Element.itertext()=lxml.etree._Element-class.html#itertext"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-960', 'itertext', 'link-960');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"RTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATAIL"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTAIL"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> <tt id="link-961" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-964', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-965" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-965', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-966" class="py-name" targets="Method lxml.etree._Element.itertext()=lxml.etree._Element-class.html#itertext"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-966', 'itertext', 'link-966');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"RTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATAIL"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTAIL"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> <tt id="link-967" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-961', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"> <tt id="link-962" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-962', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext_child'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_itertext_child"></a><div id="_ETreeTestCaseBase.test_itertext_child-def"><a name="L852"></a><tt class="py-lineno"> 852</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext_child');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_itertext_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext_child-expanded"><a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> <tt id="link-963" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-967', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> <tt id="link-968" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-968', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext_child'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_itertext_child"></a><div id="_ETreeTestCaseBase.test_itertext_child-def"><a name="L859"></a><tt class="py-lineno"> 859</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext_child');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_itertext_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext_child-expanded"><a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt id="link-969" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-963', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-969', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-964', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-970', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-965', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> <tt id="link-966" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-966', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-967" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-971', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt id="link-972" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-972', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-973" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-967', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-968" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-968', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<root>RTEXT<a></a>ATAIL<b/><c>CTEXT</c>CTAIL</root>"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> <tt id="link-969" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-973', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-974" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-974', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<root>RTEXT<a></a>ATAIL<b/><c>CTEXT</c>CTAIL</root>"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt id="link-975" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-969', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-970" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-970', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-971', 'itertext', 'link-960');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"CTEXT"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> <tt id="link-972" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-975', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-976" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-976', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-977', 'itertext', 'link-966');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"CTEXT"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt id="link-978" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-972', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_findall"></a><div id="_ETreeTestCaseBase.test_findall-def"><a name="L861"></a><tt class="py-lineno"> 861</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall-expanded"><a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt id="link-973" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-978', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_findall"></a><div id="_ETreeTestCaseBase.test_findall-def"><a name="L868"></a><tt class="py-lineno"> 868</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall-expanded"><a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt id="link-979" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-973', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-979', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-974', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-980', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-981" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-975', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt id="link-976" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-976', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-977" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-981', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt id="link-982" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-982', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-983" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-977', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-978" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-978', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><c/></b><b/><c><b/></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-979', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-980" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-980', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-981" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-981', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-982', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-983" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-983', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-984', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-985" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-985', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-986', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-987" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-987', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-988', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-989', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-990', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_findall_ns"></a><div id="_ETreeTestCaseBase.test_findall_ns-def"><a name="L871"></a><tt class="py-lineno"> 871</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall_ns-expanded"><a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt id="link-991" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-983', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-984" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-984', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><c/></b><b/><c><b/></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-985" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-985', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-986" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-986', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-987" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-987', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-988', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-989', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-990', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-991', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-992', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-993" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-993', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-994" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-994', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-995" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-995', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-996', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_findall_ns"></a><div id="_ETreeTestCaseBase.test_findall_ns-def"><a name="L878"></a><tt class="py-lineno"> 878</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall_ns-expanded"><a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"> <tt id="link-997" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-991', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-997', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-998" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-992', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-993" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-998', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-993', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> <tt id="link-994" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-994', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-995" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-999', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"> <tt id="link-1000" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1000', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1001" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-995', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-996" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-996', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:x="X" xmlns:y="Y"><x:b><c/></x:b><b/><c><x:b/><b/></c><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-997" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-997', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-998" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-998', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-999" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-999', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1000" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1000', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1001" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1001', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1002', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_keywords"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-def"><a name="L878"></a><tt class="py-lineno"> 878</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_keywords-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_keywords');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-expanded"><a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"> <tt id="link-1003" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1003', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1004', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1005', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1006" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1006', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree._Element.attrib
-lxml.etree._ProcessingInstruction.attrib
-lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1007', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree._Element.attrib
-lxml.etree._ProcessingInstruction.attrib
-lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1008', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1001', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1002" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1002', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:x="X" xmlns:y="Y"><x:b><c/></x:b><b/><c><x:b/><b/></c><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1003" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1003', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1004', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1005" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1005', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1006', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1007" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1007', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1008', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
</div><a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes"></a><div id="_ETreeTestCaseBase.test_element_with_attributes-def"><a name="L885"></a><tt class="py-lineno"> 885</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes-expanded"><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt id="link-1009" class="py-name"><a title="lxml.etree.Element
+<a name="_ETreeTestCaseBase.test_element_with_attributes_keywords"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-def"><a name="L885"></a><tt class="py-lineno"> 885</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_keywords-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_keywords');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-expanded"><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt id="link-1009" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1009', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree
<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1012', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1012', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
lxml.tests.selftest2.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1014', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_extra"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-def"><a name="L892"></a><tt class="py-lineno"> 892</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_extra-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_extra');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-expanded"><a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt id="link-1015" class="py-name"><a title="lxml.etree.Element
+<a name="_ETreeTestCaseBase.test_element_with_attributes"></a><div id="_ETreeTestCaseBase.test_element_with_attributes-def"><a name="L892"></a><tt class="py-lineno"> 892</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes-expanded"><a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt id="link-1015" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1015', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1017', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> </tt>
<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1018" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1018', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">'Baz'</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1018', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1020', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Baz'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree._Element.attrib
-lxml.etree._ProcessingInstruction.attrib
-lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1021', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-def"><a name="L900"></a><tt class="py-lineno"> 900</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-expanded"><a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt id="link-1022" class="py-name"><a title="lxml.etree.Element
+</div><a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_with_attributes_extra"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-def"><a name="L899"></a><tt class="py-lineno"> 899</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_extra-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_extra');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra">test_element_with_attributes_extra</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra-expanded"><a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> <tt id="link-1021" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1022', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1021', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1023', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1024" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1022', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1024', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1025" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1023', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1024" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1025', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Baz'</tt><tt class="py-op">)</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1024', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">'Baz'</tt><tt class="py-op">)</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1026', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1025', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.attrib
+lxml.tests.selftest2.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1026', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Baz'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1027', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1027', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt id="link-1028" class="py-name"><a title="lxml.etree.Element
+<a name="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_extra_duplicate">test_element_with_attributes_extra_duplicate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_extra_duplicate-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt id="link-1028" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1028', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1029" class="py-name"><a title="lxml.etree
<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1031" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1031', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1031', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Baz'</tt><tt class="py-op">)</tt> </tt>
<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1032', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1032', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Baz'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1033', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1033', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_with_attributes"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes-def"><a name="L914"></a><tt class="py-lineno"> 914</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-expanded"><a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt id="link-1034" class="py-name"><a title="lxml.etree.Element
+<a name="_ETreeTestCaseBase.test_element_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-def"><a name="L914"></a><tt class="py-lineno"> 914</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-expanded"><a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt id="link-1034" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1034', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1034', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1036', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt id="link-1037" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1037', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree
+<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1037" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1037', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.attrib
+lxml.tests.selftest2.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1038', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.attrib
+lxml.tests.selftest2.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1039', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_with_attributes"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt id="link-1040" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1040', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1041" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1038', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1039', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1040" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1041', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1040', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt id="link-1041" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1041', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"Baz"</tt><tt class="py-op">)</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Baz"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1042', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt id="link-1043" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1043', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1044', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1045', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1046" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1046', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> <tt id="link-1047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1047', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"Baz"</tt><tt class="py-op">)</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Baz"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1042', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1043" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1048', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1049" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1043', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-def"><a name="L923"></a><tt class="py-lineno"> 923</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-expanded"><a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt id="link-1044" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1049', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-def"><a name="L930"></a><tt class="py-lineno"> 930</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-expanded"><a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt id="link-1050" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1044', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1050', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1051" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1045', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1051', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1046', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt id="link-1047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1047', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1052', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt id="link-1053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1053', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1048', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1049" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1049', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1050" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1054', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1055', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1056" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1050', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt id="link-1051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1051', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1056', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt id="link-1057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1057', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1058" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1052', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1053" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1058', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1053', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_write"></a><div id="_ETreeTestCaseBase.test_write-def"><a name="L932"></a><tt class="py-lineno"> 932</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write-expanded"><a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt id="link-1054" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1059', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_write"></a><div id="_ETreeTestCaseBase.test_write-def"><a name="L939"></a><tt class="py-lineno"> 939</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write-expanded"><a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt id="link-1060" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1054', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1060', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1055', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1061', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1062" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1056', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt id="link-1057" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1062', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt id="link-1063" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1057', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1058" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1063', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1064" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1058', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1064', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1059', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt id="link-1060" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1060', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1061" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1065', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt id="link-1066" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1066', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1067" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1061', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1062" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1062', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc%s>This is a test.</doc%s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1063" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1067', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1068" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1068', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc%s>This is a test.</doc%s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1069" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1063', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1064" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1064', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-1065" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1065', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1066', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt id="link-1067" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1067', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt id="link-1068" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1068', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc%s>This is a test.</doc%s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt id="link-1069" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-1069', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-1070" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1070', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> <tt id="link-1071" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1071', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_method_html"></a><div id="_ETreeTestCaseBase.test_write_method_html-def"><a name="L947"></a><tt class="py-lineno"> 947</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_html-expanded"><a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt id="link-1072" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1069', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1070" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1070', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-1071" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1071', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1072', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt id="link-1073" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1073', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt id="link-1074" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1074', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc%s>This is a test.</doc%s>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> <tt id="link-1075" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-1075', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-1076" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1076', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt id="link-1077" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1077', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_method_html"></a><div id="_ETreeTestCaseBase.test_write_method_html-def"><a name="L954"></a><tt class="py-lineno"> 954</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_html-expanded"><a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt id="link-1078" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1072', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1073" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1078', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1073', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1079', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1074', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt id="link-1075" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1080', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> <tt id="link-1081" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1075', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1081', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1082" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1076', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1077" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1082', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1077', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt id="link-1078" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1078', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1083', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> <tt id="link-1084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1084', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1085" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1079', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1080', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt id="link-1081" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1085', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1086', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> <tt id="link-1087" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1081', 'html', 'link-1081');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-1082" class="py-name"><a title="lxml.etree.Element
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1087', 'html', 'link-1087');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-1088" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1082', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt id="link-1083" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1083', 'body', 'link-1083');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-1084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1084', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1085" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1088', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt id="link-1089" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1089', 'body', 'link-1089');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-1090" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1090', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1091" class="py-name"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1085', 'html', 'link-1081');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1086', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1087" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1087', 'body', 'link-1083');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1088" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1091', 'html', 'link-1087');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1092" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1092', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1093" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1093', 'body', 'link-1089');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1088', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> <tt id="link-1089" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1089', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1090" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1090', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1091" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1094', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt id="link-1095" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1095', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1096" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1096', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1097" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1091', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1092" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1092', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-1093" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1097', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1098" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1098', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-1099" class="py-name"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1093', 'html', 'link-1081');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1094', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1095" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1095', 'method', 'link-1095');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt id="link-1096" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1096', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1097" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1097', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-1098" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1098', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-1099" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1099', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1100" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1100', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><body><p>html<br>test</p></body></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt id="link-1101" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1101', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt id="link-1102" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1102', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_method_text"></a><div id="_ETreeTestCaseBase.test_write_method_text-def"><a name="L967"></a><tt class="py-lineno"> 967</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_text-expanded"><a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> <tt id="link-1103" class="py-name"><a title="lxml.etree.ElementTree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1099', 'html', 'link-1087');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1100" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1100', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1101" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1101', 'method', 'link-1101');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> <tt id="link-1102" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1102', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1103" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-1103', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-1104" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1104', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-1105" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1105', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1106" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1106', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><body><p>html<br>test</p></body></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt id="link-1107" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1107', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt id="link-1108" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1108', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_method_text"></a><div id="_ETreeTestCaseBase.test_write_method_text-def"><a name="L974"></a><tt class="py-lineno"> 974</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_text-expanded"><a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt id="link-1109" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1103', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1104" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1109', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1110" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1104', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1110', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1111" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1105', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt id="link-1106" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1111', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt id="link-1112" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1106', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1107" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1112', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1107', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1108" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1113', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1108', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt id="link-1109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1109', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1110" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1114', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt id="link-1115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1115', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1116" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1110', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1111" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1111', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1112" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1116', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1117', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1118" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1112', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1118', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1119" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1113', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1114" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1114', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1115', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1116" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1119', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1120" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1120', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1121', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1122" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1116', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1117" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1117', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1118" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1118', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1119" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1122', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1123" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1123', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1124" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1124', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1125" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1119', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1120" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1120', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1121" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1121', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1122" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1122', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1123" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1123', 'method', 'link-1095');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt id="link-1124" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1124', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1125" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1125', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt id="link-1126" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1126', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_write_fail"></a><div id="_ETreeTestCaseBase.test_write_fail-def"><a name="L989"></a><tt class="py-lineno"> 989</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_fail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_fail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_fail-expanded"><a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt id="link-1127" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1125', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1126" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1126', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1127" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1127', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1128" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1128', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1129" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1129', 'method', 'link-1101');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt id="link-1130" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1130', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1131" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1131', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt id="link-1132" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1132', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_write_fail"></a><div id="_ETreeTestCaseBase.test_write_fail-def"><a name="L996"></a><tt class="py-lineno"> 996</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_fail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_fail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_fail-expanded"><a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt id="link-1133" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1127', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1128" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1133', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1134" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1128', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1129" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1135" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1129', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt id="link-1130" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1135', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt id="link-1136" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1130', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1131" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1136', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1137" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1131', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1132" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1138" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1132', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1133" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1138', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1139" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1133', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt> <tt id="link-1134" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1139', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt> <tt id="link-1140" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1134', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1135" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1135', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc>This is a test.</doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1136" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1136', 'write', 'link-1066');">write</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> <tt class="py-string">"definitely////\\-\\nonexisting\\-\\////FILE"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-comment"># this could trigger a crash, apparently because the document</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-comment"># reference was prematurely garbage collected</tt> </tt>
-<a name="_ETreeTestCaseBase.test_crash"></a><div id="_ETreeTestCaseBase.test_crash-def"><a name="L999"></a><tt class="py-lineno"> 999</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_crash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_crash-expanded"><a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt id="link-1137" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1140', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1141" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1141', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<doc>This is a test.</doc>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1142" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1142', 'write', 'link-1072');">write</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-string">"definitely////\\-\\nonexisting\\-\\////FILE"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt class="py-comment"># this could trigger a crash, apparently because the document</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-comment"># reference was prematurely garbage collected</tt> </tt>
+<a name="_ETreeTestCaseBase.test_crash"></a><div id="_ETreeTestCaseBase.test_crash-def"><a name="L1006"></a><tt class="py-lineno">1006</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_crash');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_crash-expanded"><a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt id="link-1143" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1137', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1138" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1143', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1144" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1138', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1144', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1145" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1139', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt id="link-1140" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1140', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-1141" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1145', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt id="link-1146" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1146', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-1147" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1141', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt id="link-1142" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1142', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1143" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1147', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt id="link-1148" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1148', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1149" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1143', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt id="link-1144" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1149', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt id="link-1150" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
lxml.html.InputElement.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1144', 'value', 'link-1144');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1145" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1145', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1146" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1150', 'value', 'link-1150');">value</a></tt> <tt class="py-op">=</tt> <tt id="link-1151" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1151', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1152" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1146', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1147" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1152', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1153" class="py-name"><a title="lxml.html.CheckboxGroup.value
lxml.html.InputElement.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1147', 'value', 'link-1144');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-comment"># from doctest; for some reason this caused crashes too</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_ElementTreeDoctest"></a><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-def"><a name="L1009"></a><tt class="py-lineno">1009</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_ElementTreeDoctest');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-expanded"><a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt id="link-1148" class="py-name"><a title="lxml.etree.Element
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1153', 'value', 'link-1150');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-comment"># from doctest; for some reason this caused crashes too</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_ElementTreeDoctest"></a><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-def"><a name="L1016"></a><tt class="py-lineno">1016</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_ElementTreeDoctest');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-expanded"><a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt id="link-1154" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1148', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1149" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1154', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1155" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1149', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1155', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1156" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1150', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt id="link-1151" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1156', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt id="link-1157" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1151', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1152" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1157', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1152', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1153" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1158', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1159" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1153', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt id="link-1154" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1154', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-1155" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1159', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt id="link-1160" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1160', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-1161" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1155', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1156" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-1156', '_check_element', 'link-1156');">_check_element</a></tt><tt class="py-op">(</tt><tt id="link-1157" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1157', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1158" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1161', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1162" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-1162', '_check_element', 'link-1162');">_check_element</a></tt><tt class="py-op">(</tt><tt id="link-1163" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1163', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1164" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1158', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1159" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1159', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1160', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1161" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree" class="py-name" href="#" onclick="return doclink('link-1161', '_check_element_tree', 'link-1161');">_check_element_tree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_reference"></a><div id="_ETreeTestCaseBase.test_subelement_reference-def"><a name="L1021"></a><tt class="py-lineno">1021</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_reference-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_reference');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_reference-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_reference-expanded"><a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt id="link-1162" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1164', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-1165" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1165', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1166', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1167" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree" class="py-name" href="#" onclick="return doclink('link-1167', '_check_element_tree', 'link-1167');">_check_element_tree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_reference"></a><div id="_ETreeTestCaseBase.test_subelement_reference-def"><a name="L1028"></a><tt class="py-lineno">1028</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_reference-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_reference');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_reference-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_reference-expanded"><a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt id="link-1168" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1162', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1163" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1168', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1169" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1163', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1164" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1169', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1170" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1164', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt id="link-1165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1165', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1170', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt id="link-1171" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1171', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1172" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1166', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1167', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1168" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1168', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-1169" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1169', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-name">el3</tt> <tt class="py-op">=</tt> <tt id="link-1170" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1170', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-name">al</tt> <tt class="py-op">=</tt> <tt id="link-1171" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1172', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1173" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1173', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1174" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1171', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt class="py-name">al2</tt> <tt class="py-op">=</tt> <tt id="link-1172" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1172', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al</tt><tt class="py-op">,</tt> <tt class="py-string">'bar2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-name">al3</tt> <tt class="py-op">=</tt> <tt id="link-1173" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1173', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-comment"># now move al2 into el</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1174', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1174', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-1175" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1175', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"> <tt class="py-name">el3</tt> <tt class="py-op">=</tt> <tt id="link-1176" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1176', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt><tt class="py-op">)</tt> </tt>
<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-comment"># now change al3 directly</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">al3</tt><tt class="py-op">.</tt><tt id="link-1175" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-name">al</tt> <tt class="py-op">=</tt> <tt id="link-1177" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1177', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">al2</tt> <tt class="py-op">=</tt> <tt id="link-1178" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1178', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al</tt><tt class="py-op">,</tt> <tt class="py-string">'bar2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-name">al3</tt> <tt class="py-op">=</tt> <tt id="link-1179" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1179', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-comment"># now move al2 into el</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1180" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1180', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt class="py-comment"># now change al3 directly</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-name">al3</tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1175', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'baz2-modified'</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-comment"># it should have changed through this route too</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-string">'baz2-modified'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1176" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1181', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'baz2-modified'</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-comment"># it should have changed through this route too</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-string">'baz2-modified'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1182" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1176', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text"></a><div id="_ETreeTestCaseBase.test_set_text-def"><a name="L1044"></a><tt class="py-lineno">1044</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text-expanded"><a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt id="link-1177" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1182', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text"></a><div id="_ETreeTestCaseBase.test_set_text-def"><a name="L1051"></a><tt class="py-lineno">1051</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text-expanded"><a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt id="link-1183" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1177', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1178" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1183', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1184" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1178', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1179" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1184', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1185" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1179', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt id="link-1180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1180', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1185', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> <tt id="link-1186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1186', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1187" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1181', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1182', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1183" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1187', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1188" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1188', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1189" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1183', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1184" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1184', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1185" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1189', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1190', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1191" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1185', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1186" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1191', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1192" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1186', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1187" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1192', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1193" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1187', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text2"></a><div id="_ETreeTestCaseBase.test_set_text2-def"><a name="L1058"></a><tt class="py-lineno">1058</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text2-expanded"><a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt id="link-1188" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1193', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text2"></a><div id="_ETreeTestCaseBase.test_set_text2-def"><a name="L1065"></a><tt class="py-lineno">1065</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text2-expanded"><a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt id="link-1194" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1188', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1189" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1194', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1189', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1190" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1195', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1196" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1190', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt id="link-1191" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1191', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1192" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1196', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt id="link-1197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1197', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1198" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1192', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1193" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1193', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1194" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1198', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1199" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1199', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1200" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1194', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1200', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1195', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1196" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1196', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt> <tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1197" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1201', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1202', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt> <tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1197', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1198" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1203', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1204" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1198', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text_none"></a><div id="_ETreeTestCaseBase.test_set_text_none-def"><a name="L1072"></a><tt class="py-lineno">1072</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_none-expanded"><a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt id="link-1199" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1204', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text_none"></a><div id="_ETreeTestCaseBase.test_set_text_none-def"><a name="L1079"></a><tt class="py-lineno">1079</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_none-expanded"><a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt id="link-1205" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1199', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1200" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1205', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1206" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1200', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1206', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1207" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1201', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1207', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1208" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1202', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1208', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1209" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1203', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1204" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1209', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1210" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1204', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1205" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1210', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1211" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1205', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1206" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1206', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1207" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1207', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text_empty"></a><div id="_ETreeTestCaseBase.test_set_text_empty-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_empty-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt id="link-1208" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1211', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1212" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1212', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1213" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1213', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text_empty"></a><div id="_ETreeTestCaseBase.test_set_text_empty-def"><a name="L1092"></a><tt class="py-lineno">1092</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_empty-expanded"><a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt id="link-1214" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1208', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1209" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1214', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1209', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1210" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1215', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1216" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1210', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1211" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1216', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1217" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1211', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1212" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1217', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1218" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1212', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1213" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1218', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1219" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1213', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1214" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1219', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1220" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1214', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1215', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1216" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1216', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail1"></a><div id="_ETreeTestCaseBase.test_tail1-def"><a name="L1095"></a><tt class="py-lineno">1095</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail1-expanded"><a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt id="link-1217" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1220', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1221', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1222" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1222', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail1"></a><div id="_ETreeTestCaseBase.test_tail1-def"><a name="L1102"></a><tt class="py-lineno">1102</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail1-expanded"><a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> <tt id="link-1223" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1217', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1218" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1223', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1224" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1218', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1219" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1224', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1219', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt id="link-1220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1220', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1225', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt id="link-1226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1226', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1227" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1221', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1222" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1222', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1223" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1227', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1228" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1228', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1229" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1223', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1224" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1224', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'dag'</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1225', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1226', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1227" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1227', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1228" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1228', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1229" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1229', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_append"></a><div id="_ETreeTestCaseBase.test_tail_append-def"><a name="L1110"></a><tt class="py-lineno">1110</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_append');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_append-expanded"><a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt id="link-1230" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1229', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1230" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1230', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'dag'</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1231" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1231', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1232" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1232', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1233" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1233', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1234" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1234', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1235" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1235', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_append"></a><div id="_ETreeTestCaseBase.test_tail_append-def"><a name="L1117"></a><tt class="py-lineno">1117</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_append');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_append-expanded"><a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt id="link-1236" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1230', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1231" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1236', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1237" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1231', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1232" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1237', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1238" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1232', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1233" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1238', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1239" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1233', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1234" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1239', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1240" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1234', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1235" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1235', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b_tail'</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1236" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1236', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b_tail'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1237" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1237', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_set_twice"></a><div id="_ETreeTestCaseBase.test_tail_set_twice-def"><a name="L1120"></a><tt class="py-lineno">1120</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_twice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_twice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_set_twice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_twice-expanded"><a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt id="link-1238" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1240', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1241', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b_tail'</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1242" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1242', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b_tail'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1243" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1243', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_set_twice"></a><div id="_ETreeTestCaseBase.test_tail_set_twice-def"><a name="L1127"></a><tt class="py-lineno">1127</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_twice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_twice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_set_twice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_twice-expanded"><a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt id="link-1244" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1238', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1239" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1244', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1245" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1239', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1240" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1245', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1246" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1240', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt id="link-1241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1241', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1242" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1246', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt id="link-1247" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1247', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1248" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1242', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1243" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1243', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1244" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1248', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1249" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1249', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1250" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1244', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1245', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1246" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1246', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1247" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1247', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1248" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1248', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1249" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1249', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1250" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1250', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>bar</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_set_none"></a><div id="_ETreeTestCaseBase.test_tail_set_none-def"><a name="L1132"></a><tt class="py-lineno">1132</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_set_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_none-expanded"><a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt id="link-1251" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1250', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1251" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1251', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1252" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1252', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1253" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1253', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1254" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1254', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1255" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1255', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1256" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1256', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>bar</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_set_none"></a><div id="_ETreeTestCaseBase.test_tail_set_none-def"><a name="L1139"></a><tt class="py-lineno">1139</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_set_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_none-expanded"><a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt id="link-1257" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1251', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1257', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1252', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1253" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1258', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1259" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1253', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1254" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1259', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1260" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1254', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1255" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1255', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1256" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1256', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1257" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1257', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1258', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1259" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1259', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt id="link-1260" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1260', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_extend'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_extend"></a><div id="_ETreeTestCaseBase.test_extend-def"><a name="L1143"></a><tt class="py-lineno">1143</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_extend-toggle" onclick="return toggle('_ETreeTestCaseBase.test_extend');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_extend-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_extend-expanded"><a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt id="link-1261" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1261', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1262" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1260', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1261" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1261', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1262" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1262', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1263', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1264" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1264', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1265" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1265', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt id="link-1266" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1266', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_extend'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_extend"></a><div id="_ETreeTestCaseBase.test_extend-def"><a name="L1150"></a><tt class="py-lineno">1150</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_extend-toggle" onclick="return toggle('_ETreeTestCaseBase.test_extend');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_extend-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_extend-expanded"><a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt id="link-1267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1267', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1268" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1262', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1268', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1269" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1263', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt id="link-1264" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1264', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1265" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1269', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt id="link-1270" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1270', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1265', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1266" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1266', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1267', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt id="link-1268" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1268', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1269" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1271', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1272" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1272', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1273" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1273', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt id="link-1274" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1274', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1275" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1269', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt id="link-1270" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1270', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1271', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt id="link-1272" class="py-name" targets="Method lxml.etree.DTD.elements()=lxml.etree.DTD-class.html#elements"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1272', 'elements', 'link-1272');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1273" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1275', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt id="link-1276" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-1276', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-1277" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1277', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt id="link-1278" class="py-name" targets="Method lxml.etree.DTD.elements()=lxml.etree.DTD-class.html#elements"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1278', 'elements', 'link-1278');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1279" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1273', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1274" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1279', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1274', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1275" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1280', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1281" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1275', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEXT%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1276" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1276', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt id="link-1277" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1277', 'elements', 'link-1272');">elements</a></tt><tt class="py-op">.</tt><tt id="link-1278" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1278', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt id="link-1279" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1279', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1280', 'extend', 'link-1280');">extend</a></tt><tt class="py-op">(</tt><tt id="link-1281" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1281', 'elements', 'link-1272');">elements</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"a0"</tt><tt class="py-op">,</tt> <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-string">"a2"</tt><tt class="py-op">,</tt> <tt class="py-string">"test0"</tt><tt class="py-op">,</tt> <tt class="py-string">"test1"</tt><tt class="py-op">,</tt> <tt class="py-string">"test2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1282" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1281', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEXT%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1282" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1282', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt id="link-1283" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1283', 'elements', 'link-1278');">elements</a></tt><tt class="py-op">.</tt><tt id="link-1284" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1284', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt id="link-1285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1285', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1286" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1286', 'extend', 'link-1286');">extend</a></tt><tt class="py-op">(</tt><tt id="link-1287" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1287', 'elements', 'link-1278');">elements</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"a0"</tt><tt class="py-op">,</tt> <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-string">"a2"</tt><tt class="py-op">,</tt> <tt class="py-string">"test0"</tt><tt class="py-op">,</tt> <tt class="py-string">"test1"</tt><tt class="py-op">,</tt> <tt class="py-string">"test2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1288" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1282', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1283" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1283', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"text0"</tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">,</tt> <tt class="py-string">"text2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1284" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1288', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1289" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1289', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"text0"</tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">,</tt> <tt class="py-string">"text2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1290" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1284', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1285', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"tail0"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1286" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1286', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1287" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1287', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_comment"></a><div id="_ETreeTestCaseBase.test_comment-def"><a name="L1169"></a><tt class="py-lineno">1169</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment-expanded"><a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt id="link-1288" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1290', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1291', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">"tail0"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1292" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1292', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1293', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_comment"></a><div id="_ETreeTestCaseBase.test_comment-def"><a name="L1176"></a><tt class="py-lineno">1176</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment-expanded"><a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt id="link-1294" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1288', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1289" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1294', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1295" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1289', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1290" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1295', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1296" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1290', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt id="link-1291" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1291', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1292" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1296', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt id="link-1297" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1297', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1298" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1292', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1293" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1293', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt id="link-1294" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1294', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1295" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1298', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1299" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1299', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt id="link-1300" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1300', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1301" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1295', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1296" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1296', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1297" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1301', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1302" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1302', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1303" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1297', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1298" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1298', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1299" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1299', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1300" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1303', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1304" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1304', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1305" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1305', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1306" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1300', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1301" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1301', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1302" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1306', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1307" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1307', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1308" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1302', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree < 1.3 adds whitespace around comments</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt id="link-1303" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1303', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_comment_text"></a><div id="_ETreeTestCaseBase.test_comment_text-def"><a name="L1181"></a><tt class="py-lineno">1181</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_text-expanded"><a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt id="link-1304" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1308', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree < 1.3 adds whitespace around comments</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt id="link-1309" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1309', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_comment_text"></a><div id="_ETreeTestCaseBase.test_comment_text-def"><a name="L1188"></a><tt class="py-lineno">1188</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_text-expanded"><a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt id="link-1310" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1304', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1305" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1310', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1305', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1306" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1311', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1312" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1306', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt id="link-1307" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1307', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1308" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1312', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt id="link-1313" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1313', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1314" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1308', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1309" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1309', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt id="link-1310" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1310', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1314', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1315" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1315', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt id="link-1316" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1316', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1317" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1311', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1312" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1312', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt id="link-1313" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1313', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1314" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1317', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1318" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1318', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt id="link-1319" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1319', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1314', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1315" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1315', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1316" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1320', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1321" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1321', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1322" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1316', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1317" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1317', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1318" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1318', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1319" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1322', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1323" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1323', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1324" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1324', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1325" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1319', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt id="link-1320" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1320', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!--foo--></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> <tt id="link-1321" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1321', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1322" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1325', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt id="link-1326" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1326', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!--foo--></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt id="link-1327" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1327', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1322', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1323" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1328', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1329" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1323', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt id="link-1324" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1324', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!--TEST--></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt id="link-1325" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1325', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree < 1.3 adds whitespace around comments</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt id="link-1326" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1326', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_whitespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_comment_whitespace"></a><div id="_ETreeTestCaseBase.test_comment_whitespace-def"><a name="L1204"></a><tt class="py-lineno">1204</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_whitespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_whitespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_whitespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_whitespace-expanded"><a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt id="link-1327" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1329', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt id="link-1330" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1330', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!--TEST--></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt id="link-1331" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1331', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree < 1.3 adds whitespace around comments</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt id="link-1332" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1332', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_whitespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_comment_whitespace"></a><div id="_ETreeTestCaseBase.test_comment_whitespace-def"><a name="L1211"></a><tt class="py-lineno">1211</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_whitespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_whitespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_whitespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_whitespace-expanded"><a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt id="link-1333" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1327', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1333', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1334" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1328', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1329" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1334', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1335" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1329', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt id="link-1330" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1330', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1331" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1335', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt id="link-1336" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1336', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1337" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1331', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1332" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1332', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> <tt id="link-1333" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1333', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1334" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1337', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1338', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt id="link-1339" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1339', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1340" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1334', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1335" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1335', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt id="link-1336" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1336', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1337" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1340', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1341" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1341', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt id="link-1342" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1342', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1343" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1337', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1338" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1338', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1339" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1343', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1344" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1344', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1345" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1339', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1340" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1340', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1341" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1341', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">' foo '</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1342" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1345', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1346" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1346', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1347" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1347', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">' foo '</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1348" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1342', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">' foo '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt> <tt class="py-line"> <tt id="link-1343" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1343', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!-- foo --></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt id="link-1344" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1344', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_comment_nonsense"></a><div id="_ETreeTestCaseBase.test_comment_nonsense-def"><a name="L1217"></a><tt class="py-lineno">1217</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_nonsense');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_nonsense-expanded"><a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt id="link-1345" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1345', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1346" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1348', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">' foo '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt id="link-1349" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1349', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><!-- foo --></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt id="link-1350" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1350', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_comment_nonsense"></a><div id="_ETreeTestCaseBase.test_comment_nonsense-def"><a name="L1224"></a><tt class="py-lineno">1224</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_nonsense');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_nonsense-expanded"><a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt id="link-1351" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1351', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1352" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1346', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1347" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1347', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1348" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1348', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1349" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1352', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1353" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1353', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1354" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1354', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1355" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1349', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1350" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1355', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1350', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1351" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1356', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1351', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1352" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1357', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1358" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1352', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-comment"># should not iterate</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_pi"></a><div id="_ETreeTestCaseBase.test_pi-def"><a name="L1229"></a><tt class="py-lineno">1229</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi-expanded"><a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt id="link-1353" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1358', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt class="py-comment"># should not iterate</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_pi"></a><div id="_ETreeTestCaseBase.test_pi-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"> <tt id="link-1359" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1353', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1354" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1359', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1354', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1355" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1360', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1361" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1355', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt id="link-1356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1356', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1361', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"> <tt id="link-1362" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1362', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1363" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1357', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1358" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1358', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1359" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1363', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1364', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1365" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1359', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1360" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1365', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1366" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1360', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1361" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1361', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1366', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1367" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1367', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1368" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1362', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1363" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1363', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1364" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1364', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<a><?foo some more text?></a>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_processinginstruction"></a><div id="_ETreeTestCaseBase.test_processinginstruction-def"><a name="L1241"></a><tt class="py-lineno">1241</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_processinginstruction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_processinginstruction');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_processinginstruction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_processinginstruction-expanded"><a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"> <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"> <tt id="link-1365" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1368', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1369" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1369', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1370" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1370', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<a><?foo some more text?></a>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_processinginstruction"></a><div id="_ETreeTestCaseBase.test_processinginstruction-def"><a name="L1248"></a><tt class="py-lineno">1248</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_processinginstruction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_processinginstruction');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_processinginstruction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_processinginstruction-expanded"><a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"> <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"> <tt id="link-1371" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1365', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1366" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1371', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1372" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1366', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1367" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1372', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1373" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1367', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"> <tt id="link-1368" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1368', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1369" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1373', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt id="link-1374" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1374', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1375" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1369', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1370" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1370', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1371" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1375', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1376" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1376', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1377" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1371', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1372" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1372', 'PI', 'link-1372');">PI</a></tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1373" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1377', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1378" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1378', 'PI', 'link-1378');">PI</a></tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1379" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1373', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1374" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1374', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1375" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1379', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1380" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1380', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1381" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1375', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1376" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1376', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1377', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<a><?foo some more text?></a>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_pi_nonsense"></a><div id="_ETreeTestCaseBase.test_pi_nonsense-def"><a name="L1253"></a><tt class="py-lineno">1253</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi_nonsense');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_pi_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi_nonsense-expanded"><a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1378" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1381', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1382" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1382', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1383" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1383', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<a><?foo some more text?></a>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_pi_nonsense"></a><div id="_ETreeTestCaseBase.test_pi_nonsense-def"><a name="L1260"></a><tt class="py-lineno">1260</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi_nonsense');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_pi_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi_nonsense-expanded"><a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"> <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1384" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1378', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> <tt id="link-1379" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1379', 'pi', 'link-1379');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt id="link-1380" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1380', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1381" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1384', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> <tt id="link-1385" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1385', 'pi', 'link-1385');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt id="link-1386" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1386', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1381', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1382" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1382', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1383" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1387', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1388" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1388', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1389" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1383', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1384" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1384', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1385" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1389', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1390" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1390', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1385', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1386" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1386', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1391', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1392" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1392', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1393" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1387', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1388" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1388', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"> <tt class="py-comment"># should not iterate</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-1389" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1389', 'pi', 'link-1379');">pi</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem"></a><div id="_ETreeTestCaseBase.test_setitem-def"><a name="L1265"></a><tt class="py-lineno">1265</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem-expanded"><a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"> <tt id="link-1390" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1393', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1394" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1394', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> <tt class="py-comment"># should not iterate</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-1395" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1395', 'pi', 'link-1385');">pi</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem"></a><div id="_ETreeTestCaseBase.test_setitem-def"><a name="L1272"></a><tt class="py-lineno">1272</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem-expanded"><a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> <tt id="link-1396" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1390', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1396', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1397" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1391', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1392" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1397', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1398" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1392', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> <tt id="link-1393" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1393', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1394" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1398', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"> <tt id="link-1399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1399', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1400" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1394', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1395" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1395', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1396" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1400', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1401', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1402" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1396', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1397" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1397', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1398" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1402', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1403" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1403', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1404" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1398', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1399" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1399', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1400" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1400', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1401" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1401', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1402" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1402', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem2"></a><div id="_ETreeTestCaseBase.test_setitem2-def"><a name="L1281"></a><tt class="py-lineno">1281</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem2-expanded"><a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt id="link-1403" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1404', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1405" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1405', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1406" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1406', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1407" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1407', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1408" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1408', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem2"></a><div id="_ETreeTestCaseBase.test_setitem2-def"><a name="L1288"></a><tt class="py-lineno">1288</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem2-expanded"><a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> <tt id="link-1409" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1403', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1404" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1409', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1404', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1405" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1410', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1411" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1405', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"> <tt id="link-1406" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1406', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1407" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1411', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt id="link-1412" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1412', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1413" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1408" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1408', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1409" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1413', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1414" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1414', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1415" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1409', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1410" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1410', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1411" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1411', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1412" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1415', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1416" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1416', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1417" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1417', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1418" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1412', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1413" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1413', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1414" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1414', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt id="link-1415" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1415', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d><e></e></d><d><e></e></d><d><e></e></d><d><e></e></d><d><e></e></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1416" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1416', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1417" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1417', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_replace"></a><div id="_ETreeTestCaseBase.test_setitem_replace-def"><a name="L1299"></a><tt class="py-lineno">1299</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_replace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_replace-expanded"><a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt id="link-1418" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1418', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1419" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1419', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1420" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1420', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt id="link-1421" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1421', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d><e></e></d><d><e></e></d><d><e></e></d><d><e></e></d><d><e></e></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1422', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1423" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1423', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_replace"></a><div id="_ETreeTestCaseBase.test_setitem_replace-def"><a name="L1306"></a><tt class="py-lineno">1306</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_replace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_replace-expanded"><a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt id="link-1424" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1418', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1419" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1424', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1425" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1419', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1420" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1425', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1426" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1420', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt id="link-1421" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1421', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1426', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> <tt id="link-1427" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1427', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1428" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1422', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1423" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1423', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1424" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1428', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1429" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1429', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1430" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1424', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt id="link-1425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1425', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1426" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1430', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"> <tt id="link-1431" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1431', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1432" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1426', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1427" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1427', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1428" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1428', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_indexerror"></a><div id="_ETreeTestCaseBase.test_setitem_indexerror-def"><a name="L1309"></a><tt class="py-lineno">1309</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_indexerror-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_indexerror');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_indexerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_indexerror-expanded"><a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> <tt id="link-1429" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1432', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1433" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1433', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1434" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1434', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_indexerror"></a><div id="_ETreeTestCaseBase.test_setitem_indexerror-def"><a name="L1316"></a><tt class="py-lineno">1316</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_indexerror-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_indexerror');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_indexerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_indexerror-expanded"><a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"> <tt id="link-1435" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1429', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1430" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1435', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1436" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1430', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1431" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1436', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1437" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1431', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"> <tt id="link-1432" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1432', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1433" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1437', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> <tt id="link-1438" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1438', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1439" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1433', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1434" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1434', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1435" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1439', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1440', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1441" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1435', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1436" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1436', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt id="link-1437" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1441', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1442" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1442', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt id="link-1443" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1437', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1317"></a><tt class="py-lineno">1317</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_tail"></a><div id="_ETreeTestCaseBase.test_setitem_tail-def"><a name="L1318"></a><tt class="py-lineno">1318</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_tail-expanded"><a name="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> <tt id="link-1438" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1443', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_tail"></a><div id="_ETreeTestCaseBase.test_setitem_tail-def"><a name="L1325"></a><tt class="py-lineno">1325</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_tail-expanded"><a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> <tt id="link-1444" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1438', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1439" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1444', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1445" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1439', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1445', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1446" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1440', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt> <tt class="py-line"> <tt id="link-1441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1441', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1442" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1446', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> <tt id="link-1447" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1447', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1448" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1442', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1443" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1443', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt> <tt class="py-line"> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1444" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1448', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1449" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1449', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1450" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1444', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1445" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1445', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1446" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1446', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'B2'</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1447" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1450', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1451" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1451', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1452" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1452', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'B2'</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1453" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1447', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1448" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1448', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1449" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1449', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"> <tt id="link-1450" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1450', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_write"></a><div id="_ETreeTestCaseBase.test_tag_write-def"><a name="L1333"></a><tt class="py-lineno">1333</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_write-expanded"><a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"> <tt id="link-1451" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1453', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1454" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1454', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1455', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt id="link-1456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1456', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_write"></a><div id="_ETreeTestCaseBase.test_tag_write-def"><a name="L1340"></a><tt class="py-lineno">1340</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_write-expanded"><a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"> <tt id="link-1457" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1451', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1452" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1457', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1458" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1452', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1453" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1458', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1459" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1453', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"> <tt id="link-1454" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1454', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1459', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"> <tt id="link-1460" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1460', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1461" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1455', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1456" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1456', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1457" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1461', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1462" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1462', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1463" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1457', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1458" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1458', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1459" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1463', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1464" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1464', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1465" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1459', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1460" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1465', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1466" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1460', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1461" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1461', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"> <tt id="link-1462" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1462', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><b></b></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1349"></a><tt class="py-lineno">1349</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_reset_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_ns-def"><a name="L1350"></a><tt class="py-lineno">1350</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_reset_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_ns-expanded"><a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> <tt id="link-1463" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1466', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1467" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1467', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> <tt id="link-1468" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1468', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><b></b></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_reset_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_ns-def"><a name="L1357"></a><tt class="py-lineno">1357</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_reset_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_ns-expanded"><a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> <tt id="link-1469" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1463', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1464" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1469', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1470" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1464', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1465" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1470', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1471" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1465', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> <tt id="link-1466" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1466', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1467" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1471', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt id="link-1472" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1472', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1473" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1467', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1468" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1468', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt id="link-1469" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1469', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1470" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1473', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1474" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1474', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> <tt id="link-1475" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1475', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1470', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1471" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1471', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1472" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1476', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1477" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1477', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1478" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1472', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"> <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1473" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1473', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"> <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1474" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1474', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{a}b'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1475" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1478', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"> <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1479', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"> <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1480" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1480', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{a}b'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1481" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1475', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt> <tt class="py-line"> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1481', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt> <tt class="py-line"> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1482" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1476', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt> <tt class="py-line"> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt> <tt class="py-line"> <tt class="py-comment"># can't use C14N here!</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1477" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1482', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"> <tt class="py-comment"># can't use C14N here!</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1483" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1477', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1478', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1479', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1480" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1480', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-1481" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1481', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1367"></a><tt class="py-lineno">1367</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_reset_root_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-def"><a name="L1368"></a><tt class="py-lineno">1368</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_root_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_root_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-expanded"><a name="L1369"></a><tt class="py-lineno">1369</tt> <tt class="py-line"> <tt id="link-1482" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1483', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1484" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1484', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1485" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1485', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1486" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1486', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-1487" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1487', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_reset_root_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-def"><a name="L1375"></a><tt class="py-lineno">1375</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_root_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_root_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-expanded"><a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> <tt id="link-1488" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1482', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1483" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1488', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1489" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1483', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1484" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1489', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1490" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1484', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt> <tt class="py-line"> <tt id="link-1485" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1485', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1486" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1490', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> <tt id="link-1491" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1491', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1492" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1486', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1487" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1487', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt> <tt class="py-line"> <tt id="link-1488" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1488', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1489" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1492', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1493" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1493', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> <tt id="link-1494" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1494', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1495" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1489', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1490" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1490', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt> <tt class="py-line"> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1491" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1495', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1496" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1496', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1497" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1491', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt> <tt class="py-line"> <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1492" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1492', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt> <tt class="py-line"> <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1493" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1493', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1497', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"> <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1498" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1498', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1499" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1499', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1494', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1495" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1500', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1501" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1495', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"> <tt class="py-comment"># can't use C14N here!</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1496" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1501', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"> <tt class="py-comment"># can't use C14N here!</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1502" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1496', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1497" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1497', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1498" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1498', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_str_subclass"></a><div id="_ETreeTestCaseBase.test_tag_str_subclass-def"><a name="L1387"></a><tt class="py-lineno">1387</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_str_subclass');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_str_subclass-expanded"><a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"> <tt id="link-1499" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1502', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1503" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1503', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1504" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1504', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_str_subclass"></a><div id="_ETreeTestCaseBase.test_tag_str_subclass-def"><a name="L1394"></a><tt class="py-lineno">1394</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_str_subclass');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_str_subclass-expanded"><a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt id="link-1505" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1499', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1505', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1506" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1500', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1501" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1506', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1507" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1501', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1502" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1507', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1508" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1502', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1503" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1508', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1509" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1503', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1504" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1504', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1505" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1505', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<TAG></TAG>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delitem"></a><div id="_ETreeTestCaseBase.test_delitem-def"><a name="L1398"></a><tt class="py-lineno">1398</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem-expanded"><a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt id="link-1506" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1509', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1510', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1511" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1511', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<TAG></TAG>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delitem"></a><div id="_ETreeTestCaseBase.test_delitem-def"><a name="L1405"></a><tt class="py-lineno">1405</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem-expanded"><a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> <tt id="link-1512" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1506', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1507" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1512', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1513" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1507', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1513', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1514" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1508', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt id="link-1509" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1509', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1514', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> <tt id="link-1515" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1515', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1516" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1510', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1511" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1511', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt> <tt class="py-line"> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1512" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1516', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1517" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1517', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt> <tt class="py-line"> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1518" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1512', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1513" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1513', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1514" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1514', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1515" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1515', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt> <tt class="py-line"> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1516" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1516', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt id="link-1517" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1517', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1518', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt id="link-1519" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1519', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1520" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1520', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> <tt id="link-1521" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1521', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"> <tt class="py-comment"># move deleted element into other tree afterwards</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-1522" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1518', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1519" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1519', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1520" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1520', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1521" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1521', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1522" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1522', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> <tt id="link-1523" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1523', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1524', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"> <tt id="link-1525" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1525', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1526" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1526', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt id="link-1527" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1527', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"> <tt class="py-comment"># move deleted element into other tree afterwards</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"> <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-1528" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1522', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'other'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-1523" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1523', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1524', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"> <tt id="link-1525" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1525', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<other><c></c></other>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_insert"></a><div id="_ETreeTestCaseBase.test_del_insert-def"><a name="L1428"></a><tt class="py-lineno">1428</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_insert');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_insert-expanded"><a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"> <tt id="link-1526" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1528', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'other'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-1529" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1529', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1530" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1530', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt id="link-1531" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1531', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<other><c></c></other>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_insert"></a><div id="_ETreeTestCaseBase.test_del_insert-def"><a name="L1435"></a><tt class="py-lineno">1435</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_insert');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_insert-expanded"><a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt id="link-1532" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1526', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1527" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1532', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1533" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1527', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1528" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1533', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1528', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"> <tt id="link-1529" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1529', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1530" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1534', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> <tt id="link-1535" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1535', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1530', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1531" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1531', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1532" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1536', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1537" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1537', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1538" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1532', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1533" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1533', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1534" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1534', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1535" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1535', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1536" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1536', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1537" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1537', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"> <tt id="link-1538" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1538', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1539" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1539', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1540" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1540', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1541" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1541', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1542', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1538', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1539" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1539', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1540" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1540', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1541" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1541', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1542" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1542', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
<a name="L1444"></a><tt class="py-lineno">1444</tt> <tt class="py-line"> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
<a name="L1446"></a><tt class="py-lineno">1446</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1543" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1543', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt id="link-1544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1544', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt> <tt class="py-line"> <tt id="link-1544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1544', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L1448"></a><tt class="py-lineno">1448</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
<a name="L1449"></a><tt class="py-lineno">1449</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1545" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1545', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1546" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1546', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
<a name="L1450"></a><tt class="py-lineno">1450</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1547" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1547', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1548" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1548', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
<a name="L1451"></a><tt class="py-lineno">1451</tt> <tt class="py-line"> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1549', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1550" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1550', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"> <tt id="link-1551" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1551', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1549', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"> <tt id="link-1550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1550', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1552" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1552', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1553', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1554" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1554', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1555" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1555', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_setitem"></a><div id="_ETreeTestCaseBase.test_del_setitem-def"><a name="L1459"></a><tt class="py-lineno">1459</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setitem-expanded"><a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> <tt id="link-1556" class="py-name"><a title="lxml.etree.Element
+<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1551" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1551', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1552" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1552', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1553" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1553', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1554" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1554', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1555" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1555', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1556" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1556', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt id="link-1557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1557', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1558" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1558', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1559', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1560" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1560', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1561" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1561', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_setitem"></a><div id="_ETreeTestCaseBase.test_del_setitem-def"><a name="L1466"></a><tt class="py-lineno">1466</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setitem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setitem-expanded"><a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt id="link-1562" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1556', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1557" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1562', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1557', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1558" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1563', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1564" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1558', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt> <tt class="py-line"> <tt id="link-1559" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1559', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1560" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1564', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> <tt id="link-1565" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1565', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1560', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1561" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1561', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt> <tt class="py-line"> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1562" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1566', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1567', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1568" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1562', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1563" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1563', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1564" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1564', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1565" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1565', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1566" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1566', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt> <tt class="py-line"> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1567', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"> <tt id="link-1568" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1568', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1569" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1569', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1570" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1570', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1571" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1571', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1572" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1572', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_setslice"></a><div id="_ETreeTestCaseBase.test_del_setslice-def"><a name="L1478"></a><tt class="py-lineno">1478</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setslice-expanded"><a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt id="link-1573" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1568', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1569" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1569', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1570" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1570', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1571" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1571', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1572" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1572', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt> <tt class="py-line"> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1573" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1573', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt id="link-1574" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1574', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1575', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1576" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1576', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1577" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1577', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1578', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_setslice"></a><div id="_ETreeTestCaseBase.test_del_setslice-def"><a name="L1485"></a><tt class="py-lineno">1485</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setslice-expanded"><a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt id="link-1579" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1573', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1574" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1579', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1574', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1580', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1581" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1575', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt> <tt class="py-line"> <tt id="link-1576" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1576', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1577" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1581', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> <tt id="link-1582" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1582', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1583" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1577', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1578" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1578', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt> <tt class="py-line"> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1579" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1583', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1584', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1585" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1579', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1580" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1580', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1581" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1581', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1582" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1582', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1583" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1583', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt> <tt class="py-line"> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">]</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1584', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt id="link-1585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1585', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1586" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1586', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1587', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1588" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1588', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1589" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1589', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1496"></a><tt class="py-lineno">1496</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_replace_slice_tail"></a><div id="_ETreeTestCaseBase.test_replace_slice_tail-def"><a name="L1497"></a><tt class="py-lineno">1497</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_replace_slice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_replace_slice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_replace_slice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_replace_slice_tail-expanded"><a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"> <tt id="link-1590" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1585', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1586" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1586', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt> <tt class="py-line"> <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1587" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1587', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1588" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1588', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt> <tt class="py-line"> <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1589" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1589', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt> <tt class="py-line"> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">]</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1590" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1590', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"> <tt id="link-1591" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1591', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><bs></bs></b><c><cs></cs></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1592" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1592', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1593" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1593', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><bs></bs></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1594', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1595" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1595', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><cs></cs></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_replace_slice_tail"></a><div id="_ETreeTestCaseBase.test_replace_slice_tail-def"><a name="L1504"></a><tt class="py-lineno">1504</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_replace_slice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_replace_slice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_replace_slice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_replace_slice_tail-expanded"><a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt id="link-1596" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1590', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1591" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1596', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1597" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1591', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1592" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1597', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1598" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1592', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1593" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1598', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1599" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1593', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1594', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt> <tt class="py-line"> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt> <tt class="py-line"> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1595" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1595', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1596" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1596', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1506"></a><tt class="py-lineno">1506</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice"></a><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-def"><a name="L1507"></a><tt class="py-lineno">1507</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-expanded"><a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> <tt id="link-1597" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1599', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1600" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1600', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt> <tt class="py-line"> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1601" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1601', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1602" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1602', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice"></a><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-def"><a name="L1514"></a><tt class="py-lineno">1514</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-expanded"><a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> <tt id="link-1603" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1597', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1598" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1603', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1604" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1598', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1599" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1604', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1599', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt> <tt class="py-line"> <tt id="link-1600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1600', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1601" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1605', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt> <tt class="py-line"> <tt id="link-1606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1606', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1607" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1601', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1602', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt> <tt class="py-line"> <tt class="py-string">'<foo><bar xmlns:baz="http://huhu"><puh><baz:bump1 /><baz:bump2 /></puh></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt> <tt class="py-line"> <tt id="link-1603" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1603', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1604', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1605', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//puh'</tt><tt class="py-op">)</tt> <tt class="py-comment"># delete bar from hierarchy</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt> <tt class="py-line"> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt> <tt class="py-line"> <tt class="py-comment"># previously, this lost a namespace declaration on bump2</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1606" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1607', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1608" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1608', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-string">'<foo><bar xmlns:baz="http://huhu"><puh><baz:bump1 /><baz:bump2 /></puh></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt id="link-1609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1609', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1610" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1610', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1611" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1611', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//puh'</tt><tt class="py-op">)</tt> <tt class="py-comment"># delete bar from hierarchy</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> <tt class="py-comment"># previously, this lost a namespace declaration on bump2</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1612" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1606', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1607', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1608', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt> <tt class="py-line"> <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1609" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1612', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1613" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1613', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1614', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"> <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1609', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1610" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1615', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1616" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1610', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt> <tt class="py-line"> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'puh'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1611" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1616', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'puh'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1617" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1611', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump1'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1612" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1617', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump1'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1618" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1612', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump2'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1613" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1618', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump2'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1619" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1613', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1520"></a><tt class="py-lineno">1520</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delitem_tail"></a><div id="_ETreeTestCaseBase.test_delitem_tail-def"><a name="L1521"></a><tt class="py-lineno">1521</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem_tail-expanded"><a name="L1522"></a><tt class="py-lineno">1522</tt> <tt class="py-line"> <tt id="link-1614" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1619', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delitem_tail"></a><div id="_ETreeTestCaseBase.test_delitem_tail-def"><a name="L1528"></a><tt class="py-lineno">1528</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem_tail-expanded"><a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"> <tt id="link-1620" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1614', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1620', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1621" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1615', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1616" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1621', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1616', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1617" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1622', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1623" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1617', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1618" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1618', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1619" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1619', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt> <tt class="py-line"> <tt id="link-1620" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1620', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1530"></a><tt class="py-lineno">1530</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_clear"></a><div id="_ETreeTestCaseBase.test_clear-def"><a name="L1531"></a><tt class="py-lineno">1531</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear-expanded"><a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"> <tt id="link-1621" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1623', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1624" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1624', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1625', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"> <tt id="link-1626" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1626', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_clear"></a><div id="_ETreeTestCaseBase.test_clear-def"><a name="L1538"></a><tt class="py-lineno">1538</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear-expanded"><a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"> <tt id="link-1627" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1621', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1627', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1628" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1622', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1628', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1623', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt> <tt class="py-line"> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1624" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1629', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1630" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1624', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1630', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1631" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1625', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1626" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1626', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1627" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1631', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1632" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1632', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1633" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1627', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1628" class="py-name"><a title="lxml.etree.DocInfo.clear
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1633', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1634" class="py-name"><a title="lxml.etree.DocInfo.clear
lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1628', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1634', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1635" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1629', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1630" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1630', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1631" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1635', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1636" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1636', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1631', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1632" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1637', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1638" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1632', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1543"></a><tt class="py-lineno">1543</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_clear_sub"></a><div id="_ETreeTestCaseBase.test_clear_sub-def"><a name="L1544"></a><tt class="py-lineno">1544</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_sub');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_sub-expanded"><a name="L1545"></a><tt class="py-lineno">1545</tt> <tt class="py-line"> <tt id="link-1633" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1638', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_clear_sub"></a><div id="_ETreeTestCaseBase.test_clear_sub-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_sub');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_sub-expanded"><a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"> <tt id="link-1639" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1633', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1634" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1639', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1634', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1635" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1640', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1635', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt> <tt class="py-line"> <tt id="link-1636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1636', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1641', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"> <tt id="link-1642" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1642', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1643" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1637', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1638', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt> <tt class="py-line"> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1639" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1643', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1644" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1644', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1645" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1639', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1645', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1646" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1640', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1641', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1642" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1646', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1647" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1647', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1648" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1642', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1643" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1643', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1644" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1644', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1645" class="py-name"><a title="lxml.etree.DocInfo.clear
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-1648', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1649" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1649', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1650', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1651" class="py-name"><a title="lxml.etree.DocInfo.clear
lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1645', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1646" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1651', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1652" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1646', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1647" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1647', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1648" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1652', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1653" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1653', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1654" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1648', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1649" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1654', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1655" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1649', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1650" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1650', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1651" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1651', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1652" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1652', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1653" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1653', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><c></c></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1564"></a><tt class="py-lineno">1564</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_clear_tail"></a><div id="_ETreeTestCaseBase.test_clear_tail-def"><a name="L1565"></a><tt class="py-lineno">1565</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_tail-expanded"><a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"> <tt id="link-1654" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1655', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1656" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1656', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1657" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1657', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1658', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1659" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1659', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b><c></c></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_clear_tail"></a><div id="_ETreeTestCaseBase.test_clear_tail-def"><a name="L1572"></a><tt class="py-lineno">1572</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_tail-expanded"><a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"> <tt id="link-1660" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1654', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1655" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1660', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1661" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1655', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1656" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1661', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1662" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1656', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1657" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1662', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1663" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1657', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1658', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1659" class="py-name"><a title="lxml.etree.DocInfo.clear
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1663', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1664" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1664', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1665" class="py-name"><a title="lxml.etree.DocInfo.clear
lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1659', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1660" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1660', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt> <tt class="py-line"> <tt id="link-1661" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1661', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1574"></a><tt class="py-lineno">1574</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert"></a><div id="_ETreeTestCaseBase.test_insert-def"><a name="L1575"></a><tt class="py-lineno">1575</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert-expanded"><a name="L1576"></a><tt class="py-lineno">1576</tt> <tt class="py-line"> <tt id="link-1662" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1665', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1666', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"> <tt id="link-1667" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1667', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert"></a><div id="_ETreeTestCaseBase.test_insert-def"><a name="L1582"></a><tt class="py-lineno">1582</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert-expanded"><a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"> <tt id="link-1668" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1662', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1663" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1668', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1669" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1663', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1664" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1669', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1670" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1664', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt> <tt class="py-line"> <tt id="link-1665" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1665', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1670', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"> <tt id="link-1671" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1671', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1672" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1666', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1667', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt> <tt class="py-line"> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1668" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1672', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1673" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1673', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1674" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1668', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1669" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1669', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1670" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1670', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1671" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1674', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1675" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1675', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1676', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1677" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1671', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1672" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1672', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt> <tt class="py-line"> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt> <tt class="py-line"> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1673" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1673', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> <tt id="link-1674" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1674', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1675" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1677', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1678" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1678', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt> <tt class="py-line"> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1679" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1679', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt id="link-1680" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1680', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1681" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1675', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1676" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1676', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1677" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1677', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt> <tt class="py-line"> <tt id="link-1678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1678', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d><b></b><e></e><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_name_interning"></a><div id="_ETreeTestCaseBase.test_insert_name_interning-def"><a name="L1602"></a><tt class="py-lineno">1602</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_name_interning-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_name_interning');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_name_interning">test_insert_name_interning</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_name_interning-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_name_interning-expanded"><a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"> <tt class="py-comment"># See GH#268 / LP#1773749.</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"> <tt id="link-1679" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1681', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1682" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1682', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1683" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1683', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> <tt id="link-1684" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1684', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><d></d><b></b><e></e><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_name_interning"></a><div id="_ETreeTestCaseBase.test_insert_name_interning-def"><a name="L1609"></a><tt class="py-lineno">1609</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_name_interning-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_name_interning');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_name_interning">test_insert_name_interning</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_name_interning-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_name_interning-expanded"><a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> <tt class="py-comment"># See GH#268 / LP#1773749.</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt id="link-1685" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1679', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1680" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1685', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1686" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1680', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1681" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1686', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1687" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1681', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt> <tt class="py-line"> <tt id="link-1682" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1682', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1683" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1687', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt id="link-1688" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1688', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1689" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1683', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1684" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1684', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt> <tt class="py-line"> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt> <tt class="py-line"> <tt class="py-comment"># Use unique names to make sure they are new in the tag name dict.</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-string">'tag-'</tt> <tt class="py-op">+</tt> <tt id="link-1685" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1685', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-string">'abcde'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt> <tt class="py-line"> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1686" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1689', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1690" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1690', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-comment"># Use unique names to make sure they are new in the tag name dict.</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> <tt class="py-name">names</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-string">'tag-'</tt> <tt class="py-op">+</tt> <tt id="link-1691" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1691', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-string">'abcde'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1692" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1686', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1687" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1687', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1688" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1688', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1689" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1692', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1693', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1694" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1694', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1695" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1689', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'d'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1690" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1690', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt> <tt class="py-line"> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt> <tt class="py-line"> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1691', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt id="link-1692" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1692', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%(a)s><%(d)s></%(d)s><%(b)s></%(b)s><%(c)s></%(c)s></%(a)s>'</tt> <tt class="py-op">%</tt> <tt class="py-name">names</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1695', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'d'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1696" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1696', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt> <tt class="py-line"> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1697" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1697', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"> <tt id="link-1698" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1698', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%(a)s><%(d)s></%(d)s><%(b)s></%(b)s><%(c)s></%(c)s></%(a)s>'</tt> <tt class="py-op">%</tt> <tt class="py-name">names</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1699" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1693', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'e'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1694" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1694', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1695', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt> <tt class="py-line"> <tt id="link-1696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1696', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%(a)s><%(d)s></%(d)s><%(b)s></%(b)s><%(e)s></%(e)s><%(c)s></%(c)s></%(a)s>'</tt> <tt class="py-op">%</tt> <tt class="py-name">names</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_beyond_index"></a><div id="_ETreeTestCaseBase.test_insert_beyond_index-def"><a name="L1634"></a><tt class="py-lineno">1634</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_beyond_index-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_beyond_index');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_beyond_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_beyond_index-expanded"><a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"> <tt id="link-1697" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1699', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">names</tt><tt class="py-op">[</tt><tt class="py-string">'e'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1700" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1700', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1701', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"> <tt id="link-1702" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1702', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%(a)s><%(d)s></%(d)s><%(b)s></%(b)s><%(e)s></%(e)s><%(c)s></%(c)s></%(a)s>'</tt> <tt class="py-op">%</tt> <tt class="py-name">names</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_beyond_index"></a><div id="_ETreeTestCaseBase.test_insert_beyond_index-def"><a name="L1641"></a><tt class="py-lineno">1641</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_beyond_index-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_beyond_index');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_beyond_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_beyond_index-expanded"><a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"> <tt id="link-1703" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1697', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1698" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1703', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1698', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1704', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1705" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1699', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt> <tt class="py-line"> <tt id="link-1700" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1700', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1705', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"> <tt id="link-1706" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1706', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1707" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1701', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1702', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt> <tt class="py-line"> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1703" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1707', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1708" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1708', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1709" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1703', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1704" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1704', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1705" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1709', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1710" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1710', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1711" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1705', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt> <tt class="py-line"> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1706" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1706', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1707" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1707', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt> <tt class="py-line"> <tt id="link-1708" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1708', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_negative"></a><div id="_ETreeTestCaseBase.test_insert_negative-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_negative-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt id="link-1709" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1711', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt> <tt class="py-line"> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1712', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1713', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt> <tt class="py-line"> <tt id="link-1714" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1714', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_negative"></a><div id="_ETreeTestCaseBase.test_insert_negative-def"><a name="L1657"></a><tt class="py-lineno">1657</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_negative-expanded"><a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"> <tt id="link-1715" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1709', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1710" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1715', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1710', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1711" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1716', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1717" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1711', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt> <tt class="py-line"> <tt id="link-1712" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1712', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1717', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"> <tt id="link-1718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1718', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1713', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1714" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1714', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt> <tt class="py-line"> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1715" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1719', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1720" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1720', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1721" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1715', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1716', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1717" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1717', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt> <tt class="py-line"> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1718" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1721', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1722" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1722', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1723" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1723', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1724" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1718', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1719', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1720" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1720', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt> <tt class="py-line"> <tt id="link-1721" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1721', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><d></d><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1666"></a><tt class="py-lineno">1666</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_tail"></a><div id="_ETreeTestCaseBase.test_insert_tail-def"><a name="L1667"></a><tt class="py-lineno">1667</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_tail-expanded"><a name="L1668"></a><tt class="py-lineno">1668</tt> <tt class="py-line"> <tt id="link-1722" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1724', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1725" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1725', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1726', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt> <tt class="py-line"> <tt id="link-1727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1727', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><d></d><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1673"></a><tt class="py-lineno">1673</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_tail"></a><div id="_ETreeTestCaseBase.test_insert_tail-def"><a name="L1674"></a><tt class="py-lineno">1674</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_tail-expanded"><a name="L1675"></a><tt class="py-lineno">1675</tt> <tt class="py-line"> <tt id="link-1728" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1722', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1723" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1728', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1723', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1729', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1730" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1724', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt> <tt class="py-line"> <tt id="link-1725" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1725', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1730', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt> <tt class="py-line"> <tt id="link-1731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1731', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1732" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1726', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1727', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt> <tt class="py-line"> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1728" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1732', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1733" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1733', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt> <tt class="py-line"> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1734" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1728', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1729', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt> <tt class="py-line"> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1730" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1734', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1735" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1735', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt> <tt class="py-line"> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1736" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1730', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1731" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1731', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt> <tt class="py-line"> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1732" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1732', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1733" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1733', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt> <tt class="py-line"> <tt id="link-1734" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1734', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2<b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1681"></a><tt class="py-lineno">1681</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove"></a><div id="_ETreeTestCaseBase.test_remove-def"><a name="L1682"></a><tt class="py-lineno">1682</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove-expanded"><a name="L1683"></a><tt class="py-lineno">1683</tt> <tt class="py-line"> <tt id="link-1735" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1736', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1737', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt> <tt class="py-line"> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1738', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1739', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt> <tt class="py-line"> <tt id="link-1740" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1740', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c>C2<b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1688"></a><tt class="py-lineno">1688</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove"></a><div id="_ETreeTestCaseBase.test_remove-def"><a name="L1689"></a><tt class="py-lineno">1689</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove-expanded"><a name="L1690"></a><tt class="py-lineno">1690</tt> <tt class="py-line"> <tt id="link-1741" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1735', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1736" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1741', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1742" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1736', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1742', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1743" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1737', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt> <tt class="py-line"> <tt id="link-1738" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1738', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1743', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt> <tt class="py-line"> <tt id="link-1744" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1744', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1739', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1740', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt> <tt class="py-line"> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1741" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1745', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1746', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt> <tt class="py-line"> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1747" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1741', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1742" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1742', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1743" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1743', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt> <tt class="py-line"> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1744" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.Classes.remove()=lxml.html.Classes-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1747', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1748" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1748', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1749" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1749', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt> <tt class="py-line"> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.Classes.remove()=lxml.html.Classes-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1744', 'remove', 'link-1744');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1745', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt> <tt class="py-line"> <tt id="link-1746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1746', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1697"></a><tt class="py-lineno">1697</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove_ns"></a><div id="_ETreeTestCaseBase.test_remove_ns-def"><a name="L1698"></a><tt class="py-lineno">1698</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_ns-expanded"><a name="L1699"></a><tt class="py-lineno">1699</tt> <tt class="py-line"> <tt id="link-1747" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1750', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1751" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1751', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt> <tt class="py-line"> <tt id="link-1752" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1752', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1704"></a><tt class="py-lineno">1704</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_ns"></a><div id="_ETreeTestCaseBase.test_remove_ns-def"><a name="L1705"></a><tt class="py-lineno">1705</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_ns-expanded"><a name="L1706"></a><tt class="py-lineno">1706</tt> <tt class="py-line"> <tt id="link-1753" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1747', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1748" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1753', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1754" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1748', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1749" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1754', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1755" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1749', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt> <tt class="py-line"> <tt id="link-1750" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1750', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1751" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1755', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt> <tt class="py-line"> <tt id="link-1756" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1756', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1751', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1752" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1752', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt> <tt class="py-line"> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1753" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1757', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1758" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1758', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt> <tt class="py-line"> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1759" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1753', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1754" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1754', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1755" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1755', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt> <tt class="py-line"> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1756" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1759', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1760" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1760', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1761" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1761', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt> <tt class="py-line"> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1756', 'remove', 'link-1744');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1757', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt> <tt class="py-line"> <tt id="link-1758" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1758', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://test"><ns0:c></ns0:c></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1759" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1759', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt> <tt class="py-line"> <tt id="link-1760" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1760', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:b xmlns:ns0="http://test"></ns0:b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1713"></a><tt class="py-lineno">1713</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove_nonexisting"></a><div id="_ETreeTestCaseBase.test_remove_nonexisting-def"><a name="L1714"></a><tt class="py-lineno">1714</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_nonexisting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_nonexisting');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_nonexisting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_nonexisting-expanded"><a name="L1715"></a><tt class="py-lineno">1715</tt> <tt class="py-line"> <tt id="link-1761" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1762', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1763', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt> <tt class="py-line"> <tt id="link-1764" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1764', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://test"><ns0:c></ns0:c></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1765" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1765', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt> <tt class="py-line"> <tt id="link-1766" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1766', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:b xmlns:ns0="http://test"></ns0:b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1720"></a><tt class="py-lineno">1720</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_nonexisting"></a><div id="_ETreeTestCaseBase.test_remove_nonexisting-def"><a name="L1721"></a><tt class="py-lineno">1721</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_nonexisting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_nonexisting');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_nonexisting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_nonexisting-expanded"><a name="L1722"></a><tt class="py-lineno">1722</tt> <tt class="py-line"> <tt id="link-1767" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1761', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1767', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1768" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1762', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1768', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1769" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1763', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt> <tt class="py-line"> <tt id="link-1764" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1764', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1765" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1769', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt> <tt class="py-line"> <tt id="link-1770" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1770', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1771" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1765', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1766" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1766', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt> <tt class="py-line"> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1767" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1771', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1772', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt> <tt class="py-line"> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1773" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1767', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1768" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1768', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1769" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1769', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1770" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1773', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1774" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1774', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1775" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1775', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1776" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1770', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt> <tt class="py-line"> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1771" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1776', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt> <tt class="py-line"> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1777" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1771', 'remove', 'link-1744');">remove</a></tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1724"></a><tt class="py-lineno">1724</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove_tail"></a><div id="_ETreeTestCaseBase.test_remove_tail-def"><a name="L1725"></a><tt class="py-lineno">1725</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_tail-expanded"><a name="L1726"></a><tt class="py-lineno">1726</tt> <tt class="py-line"> <tt id="link-1772" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1777', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1731"></a><tt class="py-lineno">1731</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_tail"></a><div id="_ETreeTestCaseBase.test_remove_tail-def"><a name="L1732"></a><tt class="py-lineno">1732</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_tail-expanded"><a name="L1733"></a><tt class="py-lineno">1733</tt> <tt class="py-line"> <tt id="link-1778" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1772', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1778', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1779" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1773', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1774" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1779', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1780" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1774', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt> <tt class="py-line"> <tt id="link-1775" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1775', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1780', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt> <tt class="py-line"> <tt id="link-1781" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1781', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1776', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1777" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1777', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt> <tt class="py-line"> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1778" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1782', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1783" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1783', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt> <tt class="py-line"> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1784" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1778', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1779" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1779', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1780" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1780', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b2'</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1781" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1784', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1785" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1785', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1786', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b2'</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1781', 'remove', 'link-1744');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1782', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt> <tt class="py-line"> <tt id="link-1783" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1783', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b2'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1784" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1784', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1737"></a><tt class="py-lineno">1737</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_getchildren"></a><div id="_ETreeTestCaseBase._test_getchildren-def"><a name="L1738"></a><tt class="py-lineno">1738</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_getchildren-toggle" onclick="return toggle('_ETreeTestCaseBase._test_getchildren');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_getchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_getchildren-expanded"><a name="L1739"></a><tt class="py-lineno">1739</tt> <tt class="py-line"> <tt id="link-1785" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1787', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1788" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1788', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt> <tt class="py-line"> <tt id="link-1789" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1789', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b2'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1790" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1790', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1744"></a><tt class="py-lineno">1744</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_while_iterating"></a><div id="_ETreeTestCaseBase.test_remove_while_iterating-def"><a name="L1745"></a><tt class="py-lineno">1745</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_while_iterating-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_while_iterating');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating">test_remove_while_iterating</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_while_iterating-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_while_iterating-expanded"><a name="L1746"></a><tt class="py-lineno">1746</tt> <tt class="py-line"> <tt class="py-comment"># There is no guarantee that this "works", but it should</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt> <tt class="py-line"> <tt class="py-comment"># remove at least one child and not crash.</tt> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt> <tt class="py-line"> <tt id="link-1791" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1785', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1791', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1792" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1786', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1792', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1787', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt> <tt class="py-line"> <tt id="link-1788" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1788', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1789" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1793', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt> <tt class="py-line"> <tt id="link-1794" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1794', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1795" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1789', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1790" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1790', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt> <tt class="py-line"> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1791" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1795', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1796', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt> <tt class="py-line"> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1797" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1791', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1792" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1792', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1793" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1793', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1794" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1794', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1795" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1795', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1796', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt> <tt class="py-line"> <tt id="link-1797" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1797', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d></d></b><c><e></e></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1798', 'getchildren', 'link-1798');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1799" class="py-name"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1799', 'getchildren', 'link-1798');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1800', 'getchildren', 'link-1798');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1759"></a><tt class="py-lineno">1759</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_makeelement"></a><div id="_ETreeTestCaseBase.test_makeelement-def"><a name="L1760"></a><tt class="py-lineno">1760</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_makeelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_makeelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_makeelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_makeelement-expanded"><a name="L1761"></a><tt class="py-lineno">1761</tt> <tt class="py-line"> <tt id="link-1801" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1797', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt> <tt class="py-line"> <tt id="link-1798" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1798', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt> <tt class="py-line"> <tt id="link-1799" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1799', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt> <tt class="py-line"> <tt id="link-1800" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1800', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt><tt class="py-op">:</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.etree._Element.remove
+lxml.html.CheckboxValues.remove
+lxml.html.Classes.remove
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1801', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertLess</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1758"></a><tt class="py-lineno">1758</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getchildren"></a><div id="_ETreeTestCaseBase.test_getchildren-def"><a name="L1759"></a><tt class="py-lineno">1759</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getchildren-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getchildren');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren">test_getchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getchildren-expanded"><a name="L1760"></a><tt class="py-lineno">1760</tt> <tt class="py-line"> <tt id="link-1802" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1801', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1802" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1802', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1802', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1803', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1803', 'Element', 'link-43');">Element</a></tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1804', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt> <tt class="py-line"> <tt id="link-1805" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1805', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1806', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1807', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
<a name="L1762"></a><tt class="py-lineno">1762</tt> <tt class="py-line"> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1804" class="py-name"><a title="lxml.etree.Element
+<a name="L1763"></a><tt class="py-lineno">1763</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1808" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1804', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1805" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement,Method lxml.etree.iterparse.makeelement()=lxml.etree.iterparse-class.html#makeelement,Function lxml.tests.selftest2.makeelement()=lxml.tests.selftest2-module.html#makeelement"><a title="lxml.etree._Element.makeelement
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1808', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1809" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1809', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1810" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1810', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1811" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1811', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1812" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1812', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1813', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt> <tt class="py-line"> <tt id="link-1814" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1814', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d></d></b><c><e></e></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1815" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1815', 'getchildren', 'link-1815');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1816', 'getchildren', 'link-1815');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1817" class="py-name"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1817', 'getchildren', 'link-1815');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1780"></a><tt class="py-lineno">1780</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_makeelement"></a><div id="_ETreeTestCaseBase.test_makeelement-def"><a name="L1781"></a><tt class="py-lineno">1781</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_makeelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_makeelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_makeelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_makeelement-expanded"><a name="L1782"></a><tt class="py-lineno">1782</tt> <tt class="py-line"> <tt id="link-1818" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1818', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1819" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1819', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1820', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt> <tt class="py-line"> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1821" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1821', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1822" class="py-name" targets="Method lxml.etree._Element.makeelement()=lxml.etree._Element-class.html#makeelement,Method lxml.etree.iterparse.makeelement()=lxml.etree.iterparse-class.html#makeelement,Function lxml.tests.selftest2.makeelement()=lxml.tests.selftest2-module.html#makeelement"><a title="lxml.etree._Element.makeelement
lxml.etree.iterparse.makeelement
-lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-1805', 'makeelement', 'link-1805');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'hoi'</tt><tt class="py-op">:</tt><tt class="py-string">'dag'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1806', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt> <tt class="py-line"> <tt id="link-1807" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1807', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c hoi="dag"></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1768"></a><tt class="py-lineno">1768</tt> <tt class="py-line"> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt> <tt class="py-line"> <tt id="link-1808" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1808', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_iter'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_iter"></a><div id="_ETreeTestCaseBase.test_iter-def"><a name="L1770"></a><tt class="py-lineno">1770</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iter-expanded"><a name="L1771"></a><tt class="py-lineno">1771</tt> <tt class="py-line"> <tt id="link-1809" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.makeelement" class="py-name" href="#" onclick="return doclink('link-1822', 'makeelement', 'link-1822');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'hoi'</tt><tt class="py-op">:</tt><tt class="py-string">'dag'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1823', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt> <tt class="py-line"> <tt id="link-1824" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1824', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c hoi="dag"></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1789"></a><tt class="py-lineno">1789</tt> <tt class="py-line"> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt> <tt class="py-line"> <tt id="link-1825" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1825', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_iter'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_iter"></a><div id="_ETreeTestCaseBase.test_iter-def"><a name="L1791"></a><tt class="py-lineno">1791</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iter-expanded"><a name="L1792"></a><tt class="py-lineno">1792</tt> <tt class="py-line"> <tt id="link-1826" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1809', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1810" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1826', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1810', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1811" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1827', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1828" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1811', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt> <tt class="py-line"> <tt id="link-1812" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1812', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1828', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt> <tt class="py-line"> <tt id="link-1829" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1829', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1830" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1813', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1814" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1814', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt> <tt class="py-line"> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1815" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1830', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1831', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt> <tt class="py-line"> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1832" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1815', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1816" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1816', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1817" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1817', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1818" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1818', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1819" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1819', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt> <tt class="py-line"> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1820', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1821" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1821', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1786"></a><tt class="py-lineno">1786</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator"></a><div id="_ETreeTestCaseBase.test_getiterator-def"><a name="L1787"></a><tt class="py-lineno">1787</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator-expanded"><a name="L1788"></a><tt class="py-lineno">1788</tt> <tt class="py-line"> <tt id="link-1822" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1832', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1833" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1833', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1834" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1834', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1835" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1835', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1836" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1836', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt> <tt class="py-line"> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1837', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1838" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1838', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1807"></a><tt class="py-lineno">1807</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iter_remove_tail"></a><div id="_ETreeTestCaseBase.test_iter_remove_tail-def"><a name="L1808"></a><tt class="py-lineno">1808</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iter_remove_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iter_remove_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail">test_iter_remove_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iter_remove_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iter_remove_tail-expanded"><a name="L1809"></a><tt class="py-lineno">1809</tt> <tt class="py-line"> <tt id="link-1839" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1822', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1839', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1823', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1824" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1840', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1824', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt> <tt class="py-line"> <tt id="link-1825" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1825', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1826" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1841', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt> <tt class="py-line"> <tt id="link-1842" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1842', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1826', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1827', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt> <tt class="py-line"> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1828" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1843', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1844', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt> <tt class="py-line"> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1845" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1828', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1829" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1829', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1830" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1830', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1831" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1831', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1832" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1832', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt> <tt class="py-line"> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1833" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1833', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1834" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1834', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1803"></a><tt class="py-lineno">1803</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_empty"></a><div id="_ETreeTestCaseBase.test_getiterator_empty-def"><a name="L1804"></a><tt class="py-lineno">1804</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_empty-expanded"><a name="L1805"></a><tt class="py-lineno">1805</tt> <tt class="py-line"> <tt id="link-1835" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1845', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1846', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1847', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a1'</tt> <tt class="py-op">*</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1848" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1848', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1849" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1849', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1850', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> <tt class="py-op">*</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1851" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1851', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1852" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1852', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1853', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> <tt class="py-op">*</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1854" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1854', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1855', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1856" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1856', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> <tt class="py-op">*</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1857" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1857', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1858" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1858', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1859" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1859', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> <tt class="py-op">*</tt> <tt class="py-number">100</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt> <tt class="py-line"> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1860', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt> <tt class="py-line"> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1861', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt> <tt class="py-line"> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">]</tt> <tt class="py-op">*</tt> <tt class="py-number">5</tt><tt class="py-op">,</tt> </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1862', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1863" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1863', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1835"></a><tt class="py-lineno">1835</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator"></a><div id="_ETreeTestCaseBase.test_getiterator-def"><a name="L1836"></a><tt class="py-lineno">1836</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator-expanded"><a name="L1837"></a><tt class="py-lineno">1837</tt> <tt class="py-line"> <tt id="link-1864" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1835', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1836" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1864', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1836', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1865', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1837', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt> <tt class="py-line"> <tt id="link-1838" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1838', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1839" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1866', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt> <tt class="py-line"> <tt id="link-1867" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1867', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1839', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1840', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt> <tt class="py-line"> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1841" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1868', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1869', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt> <tt class="py-line"> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1841', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1842" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1842', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1843" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1843', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1844" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1844', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1845" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1845', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt> <tt class="py-line"> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1846', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1847', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1848', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1823"></a><tt class="py-lineno">1823</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_getiterator_filter-def"><a name="L1824"></a><tt class="py-lineno">1824</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter-expanded"><a name="L1825"></a><tt class="py-lineno">1825</tt> <tt class="py-line"> <tt id="link-1849" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1870', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1871" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1871', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1872" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1872', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1873', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1874" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1874', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt> <tt class="py-line"> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1875', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1876', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1852"></a><tt class="py-lineno">1852</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_empty"></a><div id="_ETreeTestCaseBase.test_getiterator_empty-def"><a name="L1853"></a><tt class="py-lineno">1853</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_empty-expanded"><a name="L1854"></a><tt class="py-lineno">1854</tt> <tt class="py-line"> <tt id="link-1877" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1849', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1877', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1850', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1851" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1878', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1879" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1851', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt> <tt class="py-line"> <tt id="link-1852" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1852', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1879', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt> <tt class="py-line"> <tt id="link-1880" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1880', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1853', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1854', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt> <tt class="py-line"> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1855" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1855', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1856" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1856', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1857" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1857', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1858" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1858', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1859" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1859', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1833"></a><tt class="py-lineno">1833</tt> <tt class="py-line"> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1860', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1861" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1861', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1862', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1863" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1863', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1844"></a><tt class="py-lineno">1844</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_all"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_all-def"><a name="L1845"></a><tt class="py-lineno">1845</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-expanded"><a name="L1846"></a><tt class="py-lineno">1846</tt> <tt class="py-line"> <tt id="link-1864" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1881', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1882" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1882', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt> <tt class="py-line"> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1883" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1864', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1883', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1884" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1884', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1859"></a><tt class="py-lineno">1859</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1885" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1885', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1860"></a><tt class="py-lineno">1860</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1886" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1886', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1887" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1887', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt> <tt class="py-line"> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1888" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1888', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1889', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1890', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1872"></a><tt class="py-lineno">1872</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_getiterator_filter-def"><a name="L1873"></a><tt class="py-lineno">1873</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter-expanded"><a name="L1874"></a><tt class="py-lineno">1874</tt> <tt class="py-line"> <tt id="link-1891" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1891', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1865', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1892', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1866', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt> <tt class="py-line"> <tt id="link-1867" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1867', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1893', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt> <tt class="py-line"> <tt id="link-1894" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1894', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1868', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1869', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt> <tt class="py-line"> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1895', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1896', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt> <tt class="py-line"> </tt>
+<a name="L1877"></a><tt class="py-lineno">1877</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1897" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1870', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1871" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1871', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1872" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1872', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1873', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1853"></a><tt class="py-lineno">1853</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1874" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1874', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt> <tt class="py-line"> </tt>
-<a name="L1855"></a><tt class="py-lineno">1855</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1875', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1858"></a><tt class="py-lineno">1858</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_comment"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-def"><a name="L1859"></a><tt class="py-lineno">1859</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-expanded"><a name="L1860"></a><tt class="py-lineno">1860</tt> <tt class="py-line"> <tt id="link-1876" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1897', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1878"></a><tt class="py-lineno">1878</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1898" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1898', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1899" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1899', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1900" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1900', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1901" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1901', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt> <tt class="py-line"> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1902', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1903" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1903', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1904', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1905" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1905', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1893"></a><tt class="py-lineno">1893</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_all"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_all-def"><a name="L1894"></a><tt class="py-lineno">1894</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-expanded"><a name="L1895"></a><tt class="py-lineno">1895</tt> <tt class="py-line"> <tt id="link-1906" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1876', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1877" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1906', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1877', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1907', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1908" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1878', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1861"></a><tt class="py-lineno">1861</tt> <tt class="py-line"> <tt id="link-1879" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1879', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1880" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1908', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt> <tt class="py-line"> <tt id="link-1909" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1909', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1880', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1881', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt> <tt class="py-line"> <tt id="link-1882" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1882', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1883" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1910', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1911" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1911', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt> <tt class="py-line"> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1912" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1912', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1913" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1913', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1914" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1914', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1915" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1915', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1916" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1916', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt> <tt class="py-line"> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1917" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1917', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1907"></a><tt class="py-lineno">1907</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_comment"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-def"><a name="L1908"></a><tt class="py-lineno">1908</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-expanded"><a name="L1909"></a><tt class="py-lineno">1909</tt> <tt class="py-line"> <tt id="link-1918" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1918', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1919" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1883', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1884', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt> <tt class="py-line"> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1885" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1919', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1920" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1885', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1886" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1886', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt> <tt class="py-line"> <tt class="py-name">comment_b</tt> <tt class="py-op">=</tt> <tt id="link-1887" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1887', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1888" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1888', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt> <tt class="py-line"> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1871"></a><tt class="py-lineno">1871</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1889', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1890" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1890', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt> <tt class="py-line"> </tt>
-<a name="L1873"></a><tt class="py-lineno">1873</tt> <tt class="py-line"> <tt class="py-name">comment_a</tt> <tt class="py-op">=</tt> <tt id="link-1891" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1891', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1874"></a><tt class="py-lineno">1874</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1892', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt> <tt class="py-line"> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">,</tt> <tt class="py-name">comment_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1878"></a><tt class="py-lineno">1878</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1893', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1894" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1894', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1879"></a><tt class="py-lineno">1879</tt> <tt class="py-line"> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1895', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1896" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1896', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1883"></a><tt class="py-lineno">1883</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_pi"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-def"><a name="L1884"></a><tt class="py-lineno">1884</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_pi');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-expanded"><a name="L1885"></a><tt class="py-lineno">1885</tt> <tt class="py-line"> <tt id="link-1897" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1920', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt> <tt class="py-line"> <tt id="link-1921" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1921', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1922', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1923', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L1911"></a><tt class="py-lineno">1911</tt> <tt class="py-line"> <tt id="link-1924" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1924', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1925" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1925', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1926', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1912"></a><tt class="py-lineno">1912</tt> <tt class="py-line"> </tt>
+<a name="L1913"></a><tt class="py-lineno">1913</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1927" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1927', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1914"></a><tt class="py-lineno">1914</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1928', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1915"></a><tt class="py-lineno">1915</tt> <tt class="py-line"> <tt class="py-name">comment_b</tt> <tt class="py-op">=</tt> <tt id="link-1929" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1929', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1916"></a><tt class="py-lineno">1916</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1930" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1930', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1917"></a><tt class="py-lineno">1917</tt> <tt class="py-line"> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1919"></a><tt class="py-lineno">1919</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1920"></a><tt class="py-lineno">1920</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1931" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1931', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1932" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1932', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1921"></a><tt class="py-lineno">1921</tt> <tt class="py-line"> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt> <tt class="py-line"> <tt class="py-name">comment_a</tt> <tt class="py-op">=</tt> <tt id="link-1933" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1933', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1934', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt> <tt class="py-line"> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">,</tt> <tt class="py-name">comment_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1927"></a><tt class="py-lineno">1927</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1935', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1936" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1936', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt> <tt class="py-line"> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1937" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1937', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1938" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1938', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1932"></a><tt class="py-lineno">1932</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_pi"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-def"><a name="L1933"></a><tt class="py-lineno">1933</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_pi');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-expanded"><a name="L1934"></a><tt class="py-lineno">1934</tt> <tt class="py-line"> <tt id="link-1939" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1897', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1898" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1939', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1940" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1898', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1899" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1940', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1899', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt> <tt class="py-line"> <tt id="link-1900" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1900', 'PI', 'link-1372');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1901" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1941', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1935"></a><tt class="py-lineno">1935</tt> <tt class="py-line"> <tt id="link-1942" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1942', 'PI', 'link-1378');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1901', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt> <tt class="py-line"> <tt id="link-1902" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1902', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1903" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1943', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1936"></a><tt class="py-lineno">1936</tt> <tt class="py-line"> <tt id="link-1944" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1944', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1903', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1904', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt> <tt class="py-line"> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1905" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1945', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1946" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1946', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt> <tt class="py-line"> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1947" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1905', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1906" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1906', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt> <tt class="py-line"> <tt class="py-name">pi_b</tt> <tt class="py-op">=</tt> <tt id="link-1907" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1907', 'PI', 'link-1372');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1908" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1908', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt> <tt class="py-line"> </tt>
-<a name="L1894"></a><tt class="py-lineno">1894</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1895"></a><tt class="py-lineno">1895</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1896"></a><tt class="py-lineno">1896</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1909" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1909', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1910" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1910', 'PI', 'link-1372');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt> <tt class="py-line"> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt> <tt class="py-line"> <tt class="py-name">pi_a</tt> <tt class="py-op">=</tt> <tt id="link-1911" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1911', 'PI', 'link-1372');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1912" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1912', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1900"></a><tt class="py-lineno">1900</tt> <tt class="py-line"> </tt>
-<a name="L1901"></a><tt class="py-lineno">1901</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">,</tt> <tt class="py-name">pi_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1913', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1914" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1914', 'PI', 'link-1372');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt> <tt class="py-line"> </tt>
-<a name="L1905"></a><tt class="py-lineno">1905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1906"></a><tt class="py-lineno">1906</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1907"></a><tt class="py-lineno">1907</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1915', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1916" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1916', 'PI', 'link-1372');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1908"></a><tt class="py-lineno">1908</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_with_text-def"><a name="L1909"></a><tt class="py-lineno">1909</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_with_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_with_text-expanded"><a name="L1910"></a><tt class="py-lineno">1910</tt> <tt class="py-line"> <tt id="link-1917" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1947', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1948" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1948', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1940"></a><tt class="py-lineno">1940</tt> <tt class="py-line"> <tt class="py-name">pi_b</tt> <tt class="py-op">=</tt> <tt id="link-1949" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1949', 'PI', 'link-1378');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1950', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt> <tt class="py-line"> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1951" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1951', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1952" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1952', 'PI', 'link-1378');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt> <tt class="py-line"> </tt>
+<a name="L1947"></a><tt class="py-lineno">1947</tt> <tt class="py-line"> <tt class="py-name">pi_a</tt> <tt class="py-op">=</tt> <tt id="link-1953" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1953', 'PI', 'link-1378');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1954" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1954', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt> <tt class="py-line"> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">,</tt> <tt class="py-name">pi_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1955', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1956" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1956', 'PI', 'link-1378');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt> <tt class="py-line"> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1957', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1958" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1958', 'PI', 'link-1378');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1957"></a><tt class="py-lineno">1957</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_with_text-def"><a name="L1958"></a><tt class="py-lineno">1958</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_with_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_with_text-expanded"><a name="L1959"></a><tt class="py-lineno">1959</tt> <tt class="py-line"> <tt id="link-1959" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1917', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1918" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1959', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1918', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1919" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1960', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1961" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1919', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt> <tt class="py-line"> <tt id="link-1920" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1920', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1921" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1961', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1960"></a><tt class="py-lineno">1960</tt> <tt class="py-line"> <tt id="link-1962" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1962', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1921', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1922', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt> <tt class="py-line"> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1923" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1963', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1964', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1961"></a><tt class="py-lineno">1961</tt> <tt class="py-line"> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1965" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1923', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1924" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1965', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1924', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1925" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1925', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1966', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1967" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1967', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1968" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1926', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
-<a name="L1917"></a><tt class="py-lineno">1917</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1927" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1927', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1928', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1919"></a><tt class="py-lineno">1919</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1929" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1968', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1969" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1969', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1970" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1970', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1968"></a><tt class="py-lineno">1968</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1971" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1929', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1920"></a><tt class="py-lineno">1920</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1930" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1930', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
-<a name="L1921"></a><tt class="py-lineno">1921</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1931" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1931', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1971', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1972" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1972', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1973" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1973', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1974" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1932', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1933" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1933', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1934" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1934', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1925"></a><tt class="py-lineno">1925</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1974', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L1972"></a><tt class="py-lineno">1972</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1975" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1975', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
+<a name="L1973"></a><tt class="py-lineno">1973</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1976" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1976', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1974"></a><tt class="py-lineno">1974</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1977" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1935', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
-<a name="L1926"></a><tt class="py-lineno">1926</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1936" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1936', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt> <tt class="py-line"> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1937" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1937', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1931"></a><tt class="py-lineno">1931</tt> <tt class="py-line"> <tt class="py-comment">#self.assertEqual(</tt> </tt>
-<a name="L1932"></a><tt class="py-lineno">1932</tt> <tt class="py-line"> <tt class="py-comment"># [d],</tt> </tt>
-<a name="L1933"></a><tt class="py-lineno">1933</tt> <tt class="py-line"> <tt class="py-comment"># list(d.getiterator()))</tt> </tt>
-<a name="L1934"></a><tt class="py-lineno">1934</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-def"><a name="L1935"></a><tt class="py-lineno">1935</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_with_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-expanded"><a name="L1936"></a><tt class="py-lineno">1936</tt> <tt class="py-line"> <tt id="link-1938" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1977', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1978', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
+<a name="L1976"></a><tt class="py-lineno">1976</tt> <tt class="py-line"> </tt>
+<a name="L1977"></a><tt class="py-lineno">1977</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1979"></a><tt class="py-lineno">1979</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1979" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1979', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1980"></a><tt class="py-lineno">1980</tt> <tt class="py-line"> <tt class="py-comment">#self.assertEqual(</tt> </tt>
+<a name="L1981"></a><tt class="py-lineno">1981</tt> <tt class="py-line"> <tt class="py-comment"># [d],</tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt> <tt class="py-line"> <tt class="py-comment"># list(d.getiterator()))</tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-def"><a name="L1984"></a><tt class="py-lineno">1984</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_with_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-expanded"><a name="L1985"></a><tt class="py-lineno">1985</tt> <tt class="py-line"> <tt id="link-1980" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1938', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1939" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1980', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1981" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1939', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1940" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1981', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1982" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1940', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</tt> <tt class="py-line"> <tt id="link-1941" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1941', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1982', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1986"></a><tt class="py-lineno">1986</tt> <tt class="py-line"> <tt id="link-1983" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1983', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1942', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1943', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt> <tt class="py-line"> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1944" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1984', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1985" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1985', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt> <tt class="py-line"> </tt>
+<a name="L1988"></a><tt class="py-lineno">1988</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1986" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1944', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1986', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1989"></a><tt class="py-lineno">1989</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1945', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1946" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1946', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1947" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1987', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1988" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1988', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1991"></a><tt class="py-lineno">1991</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1947', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1948" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1948', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
-<a name="L1944"></a><tt class="py-lineno">1944</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1949" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1949', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1945"></a><tt class="py-lineno">1945</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1989', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L1992"></a><tt class="py-lineno">1992</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1990', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
+<a name="L1993"></a><tt class="py-lineno">1993</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1991" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1991', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1992" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1950', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1951" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1951', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
-<a name="L1947"></a><tt class="py-lineno">1947</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1952" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1952', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1953" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1992', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1993" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1993', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1994" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1994', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1995" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1953', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
-<a name="L1949"></a><tt class="py-lineno">1949</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1954" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1954', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1955" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1955', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1956" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1995', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L1998"></a><tt class="py-lineno">1998</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1996" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1996', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
+<a name="L1999"></a><tt class="py-lineno">1999</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1997" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1997', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2000"></a><tt class="py-lineno">2000</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1998" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1956', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1957', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt> <tt class="py-line"> </tt>
-<a name="L1954"></a><tt class="py-lineno">1954</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1955"></a><tt class="py-lineno">1955</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1956"></a><tt class="py-lineno">1956</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1958" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1958', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1959" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1959', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1958"></a><tt class="py-lineno">1958</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1960"></a><tt class="py-lineno">1960</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1960', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1961"></a><tt class="py-lineno">1961</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1962"></a><tt class="py-lineno">1962</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1961" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1961', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1964"></a><tt class="py-lineno">1964</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice"></a><div id="_ETreeTestCaseBase.test_getslice-def"><a name="L1965"></a><tt class="py-lineno">1965</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice-expanded"><a name="L1966"></a><tt class="py-lineno">1966</tt> <tt class="py-line"> <tt id="link-1962" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1998', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1999" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1999', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
+<a name="L2002"></a><tt class="py-lineno">2002</tt> <tt class="py-line"> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2004"></a><tt class="py-lineno">2004</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2005"></a><tt class="py-lineno">2005</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2000', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2001" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2001', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2002', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2011"></a><tt class="py-lineno">2011</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2003', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2013"></a><tt class="py-lineno">2013</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice"></a><div id="_ETreeTestCaseBase.test_getslice-def"><a name="L2014"></a><tt class="py-lineno">2014</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice-expanded"><a name="L2015"></a><tt class="py-lineno">2015</tt> <tt class="py-line"> <tt id="link-2004" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1962', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2004', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1963', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2005', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1964', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt> <tt class="py-line"> <tt id="link-1965" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1965', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2006', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2016"></a><tt class="py-lineno">2016</tt> <tt class="py-line"> <tt id="link-2007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2007', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2008" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1966', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1967', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt> <tt class="py-line"> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1968" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2008', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2009" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2009', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2017"></a><tt class="py-lineno">2017</tt> <tt class="py-line"> </tt>
+<a name="L2018"></a><tt class="py-lineno">2018</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2010" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1968', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1969" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1969', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1970" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1970', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1972"></a><tt class="py-lineno">1972</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1971" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1971', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1973"></a><tt class="py-lineno">1973</tt> <tt class="py-line"> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1975"></a><tt class="py-lineno">1975</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1976"></a><tt class="py-lineno">1976</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1977"></a><tt class="py-lineno">1977</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1978"></a><tt class="py-lineno">1978</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1983"></a><tt class="py-lineno">1983</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1984"></a><tt class="py-lineno">1984</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1985"></a><tt class="py-lineno">1985</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1986"></a><tt class="py-lineno">1986</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1989"></a><tt class="py-lineno">1989</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_negative"></a><div id="_ETreeTestCaseBase.test_getslice_negative-def"><a name="L1990"></a><tt class="py-lineno">1990</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_negative-expanded"><a name="L1991"></a><tt class="py-lineno">1991</tt> <tt class="py-line"> <tt id="link-1972" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2010', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2019"></a><tt class="py-lineno">2019</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2011" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2011', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2012', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2013" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2013', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt> <tt class="py-line"> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2025"></a><tt class="py-lineno">2025</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2027"></a><tt class="py-lineno">2027</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2029"></a><tt class="py-lineno">2029</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2030"></a><tt class="py-lineno">2030</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2031"></a><tt class="py-lineno">2031</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2033"></a><tt class="py-lineno">2033</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2034"></a><tt class="py-lineno">2034</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2035"></a><tt class="py-lineno">2035</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2037"></a><tt class="py-lineno">2037</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2038"></a><tt class="py-lineno">2038</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_negative"></a><div id="_ETreeTestCaseBase.test_getslice_negative-def"><a name="L2039"></a><tt class="py-lineno">2039</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_negative-expanded"><a name="L2040"></a><tt class="py-lineno">2040</tt> <tt class="py-line"> <tt id="link-2014" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1972', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1973" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2014', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2015" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1973', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1974" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2015', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1974', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt> <tt class="py-line"> <tt id="link-1975" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1975', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1976" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2016', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt> <tt class="py-line"> <tt id="link-2017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2017', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1976', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1977" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1977', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt> <tt class="py-line"> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1978" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2018', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2019" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2019', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt> <tt class="py-line"> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2020" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1978', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1979" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1979', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1980" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1980', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1981" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1981', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt> <tt class="py-line"> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2001"></a><tt class="py-lineno">2001</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2002"></a><tt class="py-lineno">2002</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2003"></a><tt class="py-lineno">2003</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2004"></a><tt class="py-lineno">2004</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2010"></a><tt class="py-lineno">2010</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2011"></a><tt class="py-lineno">2011</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2014"></a><tt class="py-lineno">2014</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_step"></a><div id="_ETreeTestCaseBase.test_getslice_step-def"><a name="L2015"></a><tt class="py-lineno">2015</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_step');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_step-expanded"><a name="L2016"></a><tt class="py-lineno">2016</tt> <tt class="py-line"> <tt id="link-1982" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2020', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2021" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2021', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2022" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2022', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2023', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt> <tt class="py-line"> </tt>
+<a name="L2048"></a><tt class="py-lineno">2048</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2049"></a><tt class="py-lineno">2049</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2050"></a><tt class="py-lineno">2050</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2051"></a><tt class="py-lineno">2051</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2053"></a><tt class="py-lineno">2053</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2054"></a><tt class="py-lineno">2054</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2058"></a><tt class="py-lineno">2058</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2060"></a><tt class="py-lineno">2060</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2061"></a><tt class="py-lineno">2061</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2063"></a><tt class="py-lineno">2063</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_step"></a><div id="_ETreeTestCaseBase.test_getslice_step-def"><a name="L2064"></a><tt class="py-lineno">2064</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_step');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_step-expanded"><a name="L2065"></a><tt class="py-lineno">2065</tt> <tt class="py-line"> <tt id="link-2024" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1982', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1983" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2024', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1983', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2025', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2026" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1984', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2017"></a><tt class="py-lineno">2017</tt> <tt class="py-line"> <tt id="link-1985" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1985', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1986" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2026', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2066"></a><tt class="py-lineno">2066</tt> <tt class="py-line"> <tt id="link-2027" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2027', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1986', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1987', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt> <tt class="py-line"> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1988" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2028', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2029', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2067"></a><tt class="py-lineno">2067</tt> <tt class="py-line"> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2030" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1988', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1989" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1989', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2021"></a><tt class="py-lineno">2021</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1990" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1990', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2022"></a><tt class="py-lineno">2022</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1991" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1991', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2023"></a><tt class="py-lineno">2023</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1992" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1992', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2024"></a><tt class="py-lineno">2024</tt> <tt class="py-line"> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2026"></a><tt class="py-lineno">2026</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2027"></a><tt class="py-lineno">2027</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2029"></a><tt class="py-lineno">2029</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2030"></a><tt class="py-lineno">2030</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2031"></a><tt class="py-lineno">2031</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2033"></a><tt class="py-lineno">2033</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2035"></a><tt class="py-lineno">2035</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2036"></a><tt class="py-lineno">2036</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2037"></a><tt class="py-lineno">2037</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2038"></a><tt class="py-lineno">2038</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2040"></a><tt class="py-lineno">2040</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_text"></a><div id="_ETreeTestCaseBase.test_getslice_text-def"><a name="L2041"></a><tt class="py-lineno">2041</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_text-expanded"><a name="L2042"></a><tt class="py-lineno">2042</tt> <tt class="py-line"> <tt id="link-1993" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2030', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2069"></a><tt class="py-lineno">2069</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2031', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2070"></a><tt class="py-lineno">2070</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2032" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2032', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2071"></a><tt class="py-lineno">2071</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2033" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2033', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2034" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2034', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt> <tt class="py-line"> </tt>
+<a name="L2074"></a><tt class="py-lineno">2074</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2075"></a><tt class="py-lineno">2075</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2077"></a><tt class="py-lineno">2077</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2078"></a><tt class="py-lineno">2078</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2079"></a><tt class="py-lineno">2079</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2080"></a><tt class="py-lineno">2080</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2081"></a><tt class="py-lineno">2081</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2083"></a><tt class="py-lineno">2083</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2084"></a><tt class="py-lineno">2084</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2086"></a><tt class="py-lineno">2086</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2087"></a><tt class="py-lineno">2087</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2088"></a><tt class="py-lineno">2088</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2089"></a><tt class="py-lineno">2089</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_text"></a><div id="_ETreeTestCaseBase.test_getslice_text-def"><a name="L2090"></a><tt class="py-lineno">2090</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_text-expanded"><a name="L2091"></a><tt class="py-lineno">2091</tt> <tt class="py-line"> <tt id="link-2035" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1993', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2035', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1994', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1995" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2036', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2037" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1995', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt> <tt class="py-line"> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b>B</b>B1<c>C</c>C1</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2045"></a><tt class="py-lineno">2045</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1996" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2037', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt> <tt class="py-line"> </tt>
+<a name="L2093"></a><tt class="py-lineno">2093</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b>B</b>B1<c>C</c>C1</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2038" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1996', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2046"></a><tt class="py-lineno">2046</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1997', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2048"></a><tt class="py-lineno">2048</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2049"></a><tt class="py-lineno">2049</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2050"></a><tt class="py-lineno">2050</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2051"></a><tt class="py-lineno">2051</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2052"></a><tt class="py-lineno">2052</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2054"></a><tt class="py-lineno">2054</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2055"></a><tt class="py-lineno">2055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2056"></a><tt class="py-lineno">2056</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2057"></a><tt class="py-lineno">2057</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2058"></a><tt class="py-lineno">2058</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_comment_getitem_getslice"></a><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-def"><a name="L2059"></a><tt class="py-lineno">2059</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_getitem_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_getitem_getslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-expanded"><a name="L2060"></a><tt class="py-lineno">2060</tt> <tt class="py-line"> <tt id="link-1998" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2038', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2039" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2039', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2100"></a><tt class="py-lineno">2100</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2101"></a><tt class="py-lineno">2101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2102"></a><tt class="py-lineno">2102</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2104"></a><tt class="py-lineno">2104</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2105"></a><tt class="py-lineno">2105</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2106"></a><tt class="py-lineno">2106</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2107"></a><tt class="py-lineno">2107</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_comment_getitem_getslice"></a><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-def"><a name="L2108"></a><tt class="py-lineno">2108</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_getitem_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_getitem_getslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-expanded"><a name="L2109"></a><tt class="py-lineno">2109</tt> <tt class="py-line"> <tt id="link-2040" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1998', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1999" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2040', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1999', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2041', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2042" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2000', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2061"></a><tt class="py-lineno">2061</tt> <tt class="py-line"> <tt id="link-2001" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2001', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2042', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2110"></a><tt class="py-lineno">2110</tt> <tt class="py-line"> <tt id="link-2043" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2043', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2002', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2003', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L2062"></a><tt class="py-lineno">2062</tt> <tt class="py-line"> <tt id="link-2004" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2004', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2044', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2045" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2045', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt> <tt class="py-line"> <tt id="link-2046" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2046', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2005', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2006', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt> <tt class="py-line"> </tt>
-<a name="L2064"></a><tt class="py-lineno">2064</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2007" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2047', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2048" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2048', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt> <tt class="py-line"> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2049" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2007', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2008', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt> <tt class="py-line"> <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt id="link-2009" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2009', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2067"></a><tt class="py-lineno">2067</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2010', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">)</tt> </tt>
-<a name="L2068"></a><tt class="py-lineno">2068</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2011" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2011', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2070"></a><tt class="py-lineno">2070</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2071"></a><tt class="py-lineno">2071</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2072"></a><tt class="py-lineno">2072</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt> <tt class="py-line"> <tt class="py-name">foo</tt><tt class="py-op">,</tt> </tt>
-<a name="L2074"></a><tt class="py-lineno">2074</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2075"></a><tt class="py-lineno">2075</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2049', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2114"></a><tt class="py-lineno">2114</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2050', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2115"></a><tt class="py-lineno">2115</tt> <tt class="py-line"> <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt id="link-2051" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2051', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2116"></a><tt class="py-lineno">2116</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2052', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">)</tt> </tt>
+<a name="L2117"></a><tt class="py-lineno">2117</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2118"></a><tt class="py-lineno">2118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2119"></a><tt class="py-lineno">2119</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2120"></a><tt class="py-lineno">2120</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2121"></a><tt class="py-lineno">2121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt> <tt class="py-line"> <tt class="py-name">foo</tt><tt class="py-op">,</tt> </tt>
+<a name="L2123"></a><tt class="py-lineno">2123</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2124"></a><tt class="py-lineno">2124</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2012', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2076"></a><tt class="py-lineno">2076</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2077"></a><tt class="py-lineno">2077</tt> <tt class="py-line"> <tt class="py-name">new</tt><tt class="py-op">,</tt> </tt>
-<a name="L2078"></a><tt class="py-lineno">2078</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2079"></a><tt class="py-lineno">2079</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2013" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2013', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2080"></a><tt class="py-lineno">2080</tt> <tt class="py-line"> <tt id="link-2014" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2014', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><new></new><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2081"></a><tt class="py-lineno">2081</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2082"></a><tt class="py-lineno">2082</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice"></a><div id="_ETreeTestCaseBase.test_delslice-def"><a name="L2083"></a><tt class="py-lineno">2083</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice-expanded"><a name="L2084"></a><tt class="py-lineno">2084</tt> <tt class="py-line"> <tt id="link-2015" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2054', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2125"></a><tt class="py-lineno">2125</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2126"></a><tt class="py-lineno">2126</tt> <tt class="py-line"> <tt class="py-name">new</tt><tt class="py-op">,</tt> </tt>
+<a name="L2127"></a><tt class="py-lineno">2127</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2128"></a><tt class="py-lineno">2128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2055" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2055', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2129"></a><tt class="py-lineno">2129</tt> <tt class="py-line"> <tt id="link-2056" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2056', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><new></new><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2130"></a><tt class="py-lineno">2130</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2131"></a><tt class="py-lineno">2131</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice"></a><div id="_ETreeTestCaseBase.test_delslice-def"><a name="L2132"></a><tt class="py-lineno">2132</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice-expanded"><a name="L2133"></a><tt class="py-lineno">2133</tt> <tt class="py-line"> <tt id="link-2057" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2015', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2057', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2058" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2016', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2017" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2058', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2017', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2085"></a><tt class="py-lineno">2085</tt> <tt class="py-line"> <tt id="link-2018" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2018', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2019" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2059', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2134"></a><tt class="py-lineno">2134</tt> <tt class="py-line"> <tt id="link-2060" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2060', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2061" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2019', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2020', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2086"></a><tt class="py-lineno">2086</tt> <tt class="py-line"> </tt>
-<a name="L2087"></a><tt class="py-lineno">2087</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2021" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2061', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2062', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2135"></a><tt class="py-lineno">2135</tt> <tt class="py-line"> </tt>
+<a name="L2136"></a><tt class="py-lineno">2136</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2021', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2088"></a><tt class="py-lineno">2088</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2022" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2022', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2089"></a><tt class="py-lineno">2089</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2023', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2090"></a><tt class="py-lineno">2090</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2024" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2024', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2091"></a><tt class="py-lineno">2091</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2025" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2025', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2092"></a><tt class="py-lineno">2092</tt> <tt class="py-line"> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
-<a name="L2094"></a><tt class="py-lineno">2094</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2095"></a><tt class="py-lineno">2095</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2096"></a><tt class="py-lineno">2096</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2097"></a><tt class="py-lineno">2097</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_negative1"></a><div id="_ETreeTestCaseBase.test_delslice_negative1-def"><a name="L2098"></a><tt class="py-lineno">2098</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_negative1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative1-expanded"><a name="L2099"></a><tt class="py-lineno">2099</tt> <tt class="py-line"> <tt id="link-2026" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2063', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2065" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2065', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2139"></a><tt class="py-lineno">2139</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2066" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2066', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2140"></a><tt class="py-lineno">2140</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2067" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2067', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2141"></a><tt class="py-lineno">2141</tt> <tt class="py-line"> </tt>
+<a name="L2142"></a><tt class="py-lineno">2142</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L2143"></a><tt class="py-lineno">2143</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2144"></a><tt class="py-lineno">2144</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2146"></a><tt class="py-lineno">2146</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_negative1"></a><div id="_ETreeTestCaseBase.test_delslice_negative1-def"><a name="L2147"></a><tt class="py-lineno">2147</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_negative1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative1-expanded"><a name="L2148"></a><tt class="py-lineno">2148</tt> <tt class="py-line"> <tt id="link-2068" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2026', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2027" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2068', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2027', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2069', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2028', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2100"></a><tt class="py-lineno">2100</tt> <tt class="py-line"> <tt id="link-2029" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2029', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2070', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2149"></a><tt class="py-lineno">2149</tt> <tt class="py-line"> <tt id="link-2071" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2071', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2030', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2031', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2101"></a><tt class="py-lineno">2101</tt> <tt class="py-line"> </tt>
-<a name="L2102"></a><tt class="py-lineno">2102</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2032" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2072', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2073', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt> <tt class="py-line"> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2032', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2033" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2033', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2034" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2034', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2035" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2035', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2036" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2036', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2107"></a><tt class="py-lineno">2107</tt> <tt class="py-line"> </tt>
-<a name="L2108"></a><tt class="py-lineno">2108</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2109"></a><tt class="py-lineno">2109</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2112"></a><tt class="py-lineno">2112</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_negative2-def"><a name="L2113"></a><tt class="py-lineno">2113</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative2-expanded"><a name="L2114"></a><tt class="py-lineno">2114</tt> <tt class="py-line"> <tt id="link-2037" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2074', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2075" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2075', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2076" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2076', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2154"></a><tt class="py-lineno">2154</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2077" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2077', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2155"></a><tt class="py-lineno">2155</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2078" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2078', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2156"></a><tt class="py-lineno">2156</tt> <tt class="py-line"> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2158"></a><tt class="py-lineno">2158</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2159"></a><tt class="py-lineno">2159</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2160"></a><tt class="py-lineno">2160</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2161"></a><tt class="py-lineno">2161</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_negative2-def"><a name="L2162"></a><tt class="py-lineno">2162</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative2-expanded"><a name="L2163"></a><tt class="py-lineno">2163</tt> <tt class="py-line"> <tt id="link-2079" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2037', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2079', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2038', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2039" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2080', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2039', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2115"></a><tt class="py-lineno">2115</tt> <tt class="py-line"> <tt id="link-2040" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2040', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2081', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt> <tt class="py-line"> <tt id="link-2082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2082', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2083" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2041', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2042" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2042', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2116"></a><tt class="py-lineno">2116</tt> <tt class="py-line"> </tt>
-<a name="L2117"></a><tt class="py-lineno">2117</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2043" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2083', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2084', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt> <tt class="py-line"> </tt>
+<a name="L2166"></a><tt class="py-lineno">2166</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2085" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2043', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2044" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2044', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2045" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2045', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2120"></a><tt class="py-lineno">2120</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2046" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2046', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2121"></a><tt class="py-lineno">2121</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2047', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt> <tt class="py-line"> </tt>
-<a name="L2123"></a><tt class="py-lineno">2123</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2125"></a><tt class="py-lineno">2125</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2126"></a><tt class="py-lineno">2126</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2127"></a><tt class="py-lineno">2127</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step"></a><div id="_ETreeTestCaseBase.test_delslice_step-def"><a name="L2128"></a><tt class="py-lineno">2128</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step-expanded"><a name="L2129"></a><tt class="py-lineno">2129</tt> <tt class="py-line"> <tt id="link-2048" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2085', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2167"></a><tt class="py-lineno">2167</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2086', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2168"></a><tt class="py-lineno">2168</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2087" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2087', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2169"></a><tt class="py-lineno">2169</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2088" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2088', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2089" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2089', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt> <tt class="py-line"> </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2173"></a><tt class="py-lineno">2173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2174"></a><tt class="py-lineno">2174</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2175"></a><tt class="py-lineno">2175</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2176"></a><tt class="py-lineno">2176</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step"></a><div id="_ETreeTestCaseBase.test_delslice_step-def"><a name="L2177"></a><tt class="py-lineno">2177</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step-expanded"><a name="L2178"></a><tt class="py-lineno">2178</tt> <tt class="py-line"> <tt id="link-2090" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2048', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2090', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2091" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2049', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2050" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2091', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2050', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt> <tt class="py-line"> <tt id="link-2051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2051', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2092', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt> <tt class="py-line"> <tt id="link-2093" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2093', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2052', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt> <tt class="py-line"> </tt>
-<a name="L2132"></a><tt class="py-lineno">2132</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2094', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2095', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt> <tt class="py-line"> </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2096" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2054', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2133"></a><tt class="py-lineno">2133</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2055', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2134"></a><tt class="py-lineno">2134</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2056" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2056', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2135"></a><tt class="py-lineno">2135</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2057', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2136"></a><tt class="py-lineno">2136</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2058" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2058', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt> <tt class="py-line"> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2140"></a><tt class="py-lineno">2140</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2141"></a><tt class="py-lineno">2141</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2142"></a><tt class="py-lineno">2142</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step_negative"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative-def"><a name="L2143"></a><tt class="py-lineno">2143</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative-expanded"><a name="L2144"></a><tt class="py-lineno">2144</tt> <tt class="py-line"> <tt id="link-2059" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2096', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2182"></a><tt class="py-lineno">2182</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2097" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2097', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2183"></a><tt class="py-lineno">2183</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2098" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2098', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2184"></a><tt class="py-lineno">2184</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2099" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2099', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2185"></a><tt class="py-lineno">2185</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2100" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2100', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt> <tt class="py-line"> </tt>
+<a name="L2187"></a><tt class="py-lineno">2187</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2188"></a><tt class="py-lineno">2188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2189"></a><tt class="py-lineno">2189</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2190"></a><tt class="py-lineno">2190</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2191"></a><tt class="py-lineno">2191</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step_negative"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative-def"><a name="L2192"></a><tt class="py-lineno">2192</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative-expanded"><a name="L2193"></a><tt class="py-lineno">2193</tt> <tt class="py-line"> <tt id="link-2101" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2059', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2101', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2102" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2060', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2061" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2102', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2103" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2061', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt> <tt class="py-line"> <tt id="link-2062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2062', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2063" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2103', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt> <tt class="py-line"> <tt id="link-2104" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2104', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2105" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2063', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2146"></a><tt class="py-lineno">2146</tt> <tt class="py-line"> </tt>
-<a name="L2147"></a><tt class="py-lineno">2147</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2065" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2105', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2106" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2106', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt> <tt class="py-line"> </tt>
+<a name="L2196"></a><tt class="py-lineno">2196</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2107" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2065', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2148"></a><tt class="py-lineno">2148</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2066" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2066', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2149"></a><tt class="py-lineno">2149</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2067" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2067', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2150"></a><tt class="py-lineno">2150</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2068" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2068', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2069" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2069', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2152"></a><tt class="py-lineno">2152</tt> <tt class="py-line"> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2155"></a><tt class="py-lineno">2155</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2157"></a><tt class="py-lineno">2157</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative2-def"><a name="L2158"></a><tt class="py-lineno">2158</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-expanded"><a name="L2159"></a><tt class="py-lineno">2159</tt> <tt class="py-line"> <tt id="link-2070" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2107', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2108', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2109', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2111" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2111', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt> <tt class="py-line"> </tt>
+<a name="L2202"></a><tt class="py-lineno">2202</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2203"></a><tt class="py-lineno">2203</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2204"></a><tt class="py-lineno">2204</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2205"></a><tt class="py-lineno">2205</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2206"></a><tt class="py-lineno">2206</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative2-def"><a name="L2207"></a><tt class="py-lineno">2207</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-expanded"><a name="L2208"></a><tt class="py-lineno">2208</tt> <tt class="py-line"> <tt id="link-2112" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2070', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2071" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2112', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2113" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2071', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2113', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2072', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt> <tt class="py-line"> <tt id="link-2073" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2073', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2074" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2114', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2209"></a><tt class="py-lineno">2209</tt> <tt class="py-line"> <tt id="link-2115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2074', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2075" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2075', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2161"></a><tt class="py-lineno">2161</tt> <tt class="py-line"> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2076" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2116', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2117', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2210"></a><tt class="py-lineno">2210</tt> <tt class="py-line"> </tt>
+<a name="L2211"></a><tt class="py-lineno">2211</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2118" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2076', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2077" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2077', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2164"></a><tt class="py-lineno">2164</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2078" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2078', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2165"></a><tt class="py-lineno">2165</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2079" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2079', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2166"></a><tt class="py-lineno">2166</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2080" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2080', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2167"></a><tt class="py-lineno">2167</tt> <tt class="py-line"> </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2169"></a><tt class="py-lineno">2169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2171"></a><tt class="py-lineno">2171</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2172"></a><tt class="py-lineno">2172</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_child_tail"></a><div id="_ETreeTestCaseBase.test_delslice_child_tail-def"><a name="L2173"></a><tt class="py-lineno">2173</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_child_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_child_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_child_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_child_tail-expanded"><a name="L2174"></a><tt class="py-lineno">2174</tt> <tt class="py-line"> <tt id="link-2081" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2118', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2212"></a><tt class="py-lineno">2212</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2119" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2119', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2213"></a><tt class="py-lineno">2213</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2120" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2120', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2214"></a><tt class="py-lineno">2214</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2121', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2122', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt> <tt class="py-line"> </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2221"></a><tt class="py-lineno">2221</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_child_tail"></a><div id="_ETreeTestCaseBase.test_delslice_child_tail-def"><a name="L2222"></a><tt class="py-lineno">2222</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_child_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_child_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_child_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_child_tail-expanded"><a name="L2223"></a><tt class="py-lineno">2223</tt> <tt class="py-line"> <tt id="link-2123" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2081', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2082" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2123', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2082', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2083" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2124', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2083', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2<d></d>D2<e></e>E2</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2084" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2125', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2224"></a><tt class="py-lineno">2224</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2<d></d>D2<e></e>E2</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2225"></a><tt class="py-lineno">2225</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2126" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2084', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2085" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2085', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2178"></a><tt class="py-lineno">2178</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
-<a name="L2179"></a><tt class="py-lineno">2179</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2086" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2086', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2180"></a><tt class="py-lineno">2180</tt> <tt class="py-line"> <tt id="link-2087" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2087', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<e></e>E2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2181"></a><tt class="py-lineno">2181</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2182"></a><tt class="py-lineno">2182</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_tail"></a><div id="_ETreeTestCaseBase.test_delslice_tail-def"><a name="L2183"></a><tt class="py-lineno">2183</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_tail-expanded"><a name="L2184"></a><tt class="py-lineno">2184</tt> <tt class="py-line"> <tt id="link-2088" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2126', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2127" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2127', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2227"></a><tt class="py-lineno">2227</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L2228"></a><tt class="py-lineno">2228</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2128" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2128', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2229"></a><tt class="py-lineno">2229</tt> <tt class="py-line"> <tt id="link-2129" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2129', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<e></e>E2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2231"></a><tt class="py-lineno">2231</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_tail"></a><div id="_ETreeTestCaseBase.test_delslice_tail-def"><a name="L2232"></a><tt class="py-lineno">2232</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_tail-expanded"><a name="L2233"></a><tt class="py-lineno">2233</tt> <tt class="py-line"> <tt id="link-2130" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2088', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2089" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2130', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2131" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2089', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2090" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2131', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2132" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2090', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L2185"></a><tt class="py-lineno">2185</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2091" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2132', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2133" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2091', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2092" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2092', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
-<a name="L2187"></a><tt class="py-lineno">2187</tt> <tt class="py-line"> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2189"></a><tt class="py-lineno">2189</tt> <tt class="py-line"> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2093" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2093', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2191"></a><tt class="py-lineno">2191</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2094', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2192"></a><tt class="py-lineno">2192</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_memory"></a><div id="_ETreeTestCaseBase.test_delslice_memory-def"><a name="L2193"></a><tt class="py-lineno">2193</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_memory-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_memory');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_memory-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_memory-expanded"><a name="L2194"></a><tt class="py-lineno">2194</tt> <tt class="py-line"> <tt class="py-comment"># this could trigger a crash</tt> </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt> <tt class="py-line"> <tt id="link-2095" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2133', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2134" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2134', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt> <tt class="py-line"> </tt>
+<a name="L2237"></a><tt class="py-lineno">2237</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2238"></a><tt class="py-lineno">2238</tt> <tt class="py-line"> </tt>
+<a name="L2239"></a><tt class="py-lineno">2239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2135', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2136" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2136', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2241"></a><tt class="py-lineno">2241</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_memory"></a><div id="_ETreeTestCaseBase.test_delslice_memory-def"><a name="L2242"></a><tt class="py-lineno">2242</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_memory-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_memory');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_memory-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_memory-expanded"><a name="L2243"></a><tt class="py-lineno">2243</tt> <tt class="py-line"> <tt class="py-comment"># this could trigger a crash</tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt> <tt class="py-line"> <tt id="link-2137" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2095', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2096" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2137', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2138" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2096', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2097" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2138', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2097', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt> <tt class="py-line"> <tt id="link-2098" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2098', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2099" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2139', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2245"></a><tt class="py-lineno">2245</tt> <tt class="py-line"> <tt id="link-2140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2140', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2141" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2099', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2100', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2197"></a><tt class="py-lineno">2197</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2101" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2141', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2142', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2246"></a><tt class="py-lineno">2246</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2143" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2101', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2198"></a><tt class="py-lineno">2198</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2102" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2102', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2199"></a><tt class="py-lineno">2199</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2103" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2103', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2200"></a><tt class="py-lineno">2200</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">b</tt> <tt class="py-comment"># no more reference to b</tt> </tt>
-<a name="L2201"></a><tt class="py-lineno">2201</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2202"></a><tt class="py-lineno">2202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2104" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2143', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2247"></a><tt class="py-lineno">2247</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2144" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2144', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2145', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">b</tt> <tt class="py-comment"># no more reference to b</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2146" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2104', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2203"></a><tt class="py-lineno">2203</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice"></a><div id="_ETreeTestCaseBase.test_setslice-def"><a name="L2204"></a><tt class="py-lineno">2204</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice-expanded"><a name="L2205"></a><tt class="py-lineno">2205</tt> <tt class="py-line"> <tt id="link-2105" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2146', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2252"></a><tt class="py-lineno">2252</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice"></a><div id="_ETreeTestCaseBase.test_setslice-def"><a name="L2253"></a><tt class="py-lineno">2253</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice-expanded"><a name="L2254"></a><tt class="py-lineno">2254</tt> <tt class="py-line"> <tt id="link-2147" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2105', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2106" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2147', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2106', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2107" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2148', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2107', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2206"></a><tt class="py-lineno">2206</tt> <tt class="py-line"> <tt id="link-2108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2108', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2109" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2149', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2255"></a><tt class="py-lineno">2255</tt> <tt class="py-line"> <tt id="link-2150" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2150', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2109', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2207"></a><tt class="py-lineno">2207</tt> <tt class="py-line"> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2111" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2151', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2152" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2152', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2256"></a><tt class="py-lineno">2256</tt> <tt class="py-line"> </tt>
+<a name="L2257"></a><tt class="py-lineno">2257</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2153" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2111', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2209"></a><tt class="py-lineno">2209</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2112" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2112', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2210"></a><tt class="py-lineno">2210</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2113" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2113', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2211"></a><tt class="py-lineno">2211</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2114" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2114', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt> <tt class="py-line"> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2115" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2153', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2258"></a><tt class="py-lineno">2258</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2154" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2154', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2259"></a><tt class="py-lineno">2259</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2155', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2260"></a><tt class="py-lineno">2260</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2156', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2261"></a><tt class="py-lineno">2261</tt> <tt class="py-line"> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2115', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2214"></a><tt class="py-lineno">2214</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2116" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2157', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2263"></a><tt class="py-lineno">2263</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2158" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2116', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2215"></a><tt class="py-lineno">2215</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2117" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2158', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2159" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2117', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2216"></a><tt class="py-lineno">2216</tt> <tt class="py-line"> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2222"></a><tt class="py-lineno">2222</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all"></a><div id="_ETreeTestCaseBase.test_setslice_all-def"><a name="L2223"></a><tt class="py-lineno">2223</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all-expanded"><a name="L2224"></a><tt class="py-lineno">2224</tt> <tt class="py-line"> <tt id="link-2118" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2159', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt> <tt class="py-line"> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2267"></a><tt class="py-lineno">2267</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2268"></a><tt class="py-lineno">2268</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2269"></a><tt class="py-lineno">2269</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2270"></a><tt class="py-lineno">2270</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2271"></a><tt class="py-lineno">2271</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all"></a><div id="_ETreeTestCaseBase.test_setslice_all-def"><a name="L2272"></a><tt class="py-lineno">2272</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all-expanded"><a name="L2273"></a><tt class="py-lineno">2273</tt> <tt class="py-line"> <tt id="link-2160" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2118', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2119" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2160', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2119', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2120" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2161', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2120', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2225"></a><tt class="py-lineno">2225</tt> <tt class="py-line"> <tt id="link-2121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2121', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2162', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2274"></a><tt class="py-lineno">2274</tt> <tt class="py-line"> <tt id="link-2163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2163', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2122', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2123" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2123', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2226"></a><tt class="py-lineno">2226</tt> <tt class="py-line"> </tt>
-<a name="L2227"></a><tt class="py-lineno">2227</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2124" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2164', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2165', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2275"></a><tt class="py-lineno">2275</tt> <tt class="py-line"> </tt>
+<a name="L2276"></a><tt class="py-lineno">2276</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2166" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2124', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2228"></a><tt class="py-lineno">2228</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2125" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2125', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2229"></a><tt class="py-lineno">2229</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2126" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2126', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt> <tt class="py-line"> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2127" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2166', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2277"></a><tt class="py-lineno">2277</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2167', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2168" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2168', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2279"></a><tt class="py-lineno">2279</tt> <tt class="py-line"> </tt>
+<a name="L2280"></a><tt class="py-lineno">2280</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2169" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2127', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2128" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2169', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2281"></a><tt class="py-lineno">2281</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2170" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2128', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2129" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2170', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2282"></a><tt class="py-lineno">2282</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2171" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2129', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2234"></a><tt class="py-lineno">2234</tt> <tt class="py-line"> </tt>
-<a name="L2235"></a><tt class="py-lineno">2235</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2236"></a><tt class="py-lineno">2236</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2238"></a><tt class="py-lineno">2238</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2239"></a><tt class="py-lineno">2239</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2240"></a><tt class="py-lineno">2240</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_empty"></a><div id="_ETreeTestCaseBase.test_setslice_all_empty-def"><a name="L2241"></a><tt class="py-lineno">2241</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_empty-expanded"><a name="L2242"></a><tt class="py-lineno">2242</tt> <tt class="py-line"> <tt id="link-2130" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2171', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2283"></a><tt class="py-lineno">2283</tt> <tt class="py-line"> </tt>
+<a name="L2284"></a><tt class="py-lineno">2284</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2285"></a><tt class="py-lineno">2285</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2289"></a><tt class="py-lineno">2289</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_empty"></a><div id="_ETreeTestCaseBase.test_setslice_all_empty-def"><a name="L2290"></a><tt class="py-lineno">2290</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_empty-expanded"><a name="L2291"></a><tt class="py-lineno">2291</tt> <tt class="py-line"> <tt id="link-2172" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2130', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2131" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2172', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2173" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2131', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2132" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2173', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2132', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2243"></a><tt class="py-lineno">2243</tt> <tt class="py-line"> <tt id="link-2133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2133', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2134" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2174', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt> <tt class="py-line"> <tt id="link-2175" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2175', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2135', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2244"></a><tt class="py-lineno">2244</tt> <tt class="py-line"> </tt>
-<a name="L2245"></a><tt class="py-lineno">2245</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2136" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2176', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2177" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2177', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2293"></a><tt class="py-lineno">2293</tt> <tt class="py-line"> </tt>
+<a name="L2294"></a><tt class="py-lineno">2294</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2178" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2136', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt> <tt class="py-line"> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2137" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2178', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2295"></a><tt class="py-lineno">2295</tt> <tt class="py-line"> </tt>
+<a name="L2296"></a><tt class="py-lineno">2296</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2179" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2137', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2138" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2179', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2297"></a><tt class="py-lineno">2297</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2138', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2139" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2180', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2181" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2139', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt> <tt class="py-line"> </tt>
-<a name="L2251"></a><tt class="py-lineno">2251</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2252"></a><tt class="py-lineno">2252</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2253"></a><tt class="py-lineno">2253</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2254"></a><tt class="py-lineno">2254</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2255"></a><tt class="py-lineno">2255</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2256"></a><tt class="py-lineno">2256</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace-def"><a name="L2257"></a><tt class="py-lineno">2257</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace-expanded"><a name="L2258"></a><tt class="py-lineno">2258</tt> <tt class="py-line"> <tt id="link-2140" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2181', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt> <tt class="py-line"> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2302"></a><tt class="py-lineno">2302</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2303"></a><tt class="py-lineno">2303</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2304"></a><tt class="py-lineno">2304</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2305"></a><tt class="py-lineno">2305</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace-def"><a name="L2306"></a><tt class="py-lineno">2306</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace-expanded"><a name="L2307"></a><tt class="py-lineno">2307</tt> <tt class="py-line"> <tt id="link-2182" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2140', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2141" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2182', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2141', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2183', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2142', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2259"></a><tt class="py-lineno">2259</tt> <tt class="py-line"> <tt id="link-2143" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2143', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2144" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2184', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2308"></a><tt class="py-lineno">2308</tt> <tt class="py-line"> <tt id="link-2185" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2185', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2186" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2144', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2145" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2145', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2260"></a><tt class="py-lineno">2260</tt> <tt class="py-line"> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2146" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2186', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2187', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2309"></a><tt class="py-lineno">2309</tt> <tt class="py-line"> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2188" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2146', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2147" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2147', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2263"></a><tt class="py-lineno">2263</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2148" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2148', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2264"></a><tt class="py-lineno">2264</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2149" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2149', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2265"></a><tt class="py-lineno">2265</tt> <tt class="py-line"> </tt>
-<a name="L2266"></a><tt class="py-lineno">2266</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt> </tt>
-<a name="L2267"></a><tt class="py-lineno">2267</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2269"></a><tt class="py-lineno">2269</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2270"></a><tt class="py-lineno">2270</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2271"></a><tt class="py-lineno">2271</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-def"><a name="L2272"></a><tt class="py-lineno">2272</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-expanded"><a name="L2273"></a><tt class="py-lineno">2273</tt> <tt class="py-line"> <tt id="link-2150" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2188', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2311"></a><tt class="py-lineno">2311</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2189" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2189', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2312"></a><tt class="py-lineno">2312</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2190', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2191" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2191', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</tt> <tt class="py-line"> </tt>
+<a name="L2315"></a><tt class="py-lineno">2315</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt> </tt>
+<a name="L2316"></a><tt class="py-lineno">2316</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2319"></a><tt class="py-lineno">2319</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2320"></a><tt class="py-lineno">2320</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-def"><a name="L2321"></a><tt class="py-lineno">2321</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-expanded"><a name="L2322"></a><tt class="py-lineno">2322</tt> <tt class="py-line"> <tt id="link-2192" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2150', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2192', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2151', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2152" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2193', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2152', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt> <tt class="py-line"> <tt id="link-2153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2153', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2154" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2194', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2323"></a><tt class="py-lineno">2323</tt> <tt class="py-line"> <tt id="link-2195" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2195', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2154', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2155', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2275"></a><tt class="py-lineno">2275</tt> <tt class="py-line"> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2156" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2196', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2197', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2324"></a><tt class="py-lineno">2324</tt> <tt class="py-line"> </tt>
+<a name="L2325"></a><tt class="py-lineno">2325</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2198" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2156', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2277"></a><tt class="py-lineno">2277</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2157', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2278"></a><tt class="py-lineno">2278</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2158" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2158', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2279"></a><tt class="py-lineno">2279</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2159', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2280"></a><tt class="py-lineno">2280</tt> <tt class="py-line"> </tt>
-<a name="L2281"></a><tt class="py-lineno">2281</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2284"></a><tt class="py-lineno">2284</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2285"></a><tt class="py-lineno">2285</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2286"></a><tt class="py-lineno">2286</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-def"><a name="L2287"></a><tt class="py-lineno">2287</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-expanded"><a name="L2288"></a><tt class="py-lineno">2288</tt> <tt class="py-line"> <tt id="link-2160" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2198', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2326"></a><tt class="py-lineno">2326</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2199" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2199', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2327"></a><tt class="py-lineno">2327</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2200" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2200', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2201" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2201', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt> <tt class="py-line"> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2333"></a><tt class="py-lineno">2333</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2334"></a><tt class="py-lineno">2334</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2335"></a><tt class="py-lineno">2335</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-def"><a name="L2336"></a><tt class="py-lineno">2336</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-expanded"><a name="L2337"></a><tt class="py-lineno">2337</tt> <tt class="py-line"> <tt id="link-2202" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2160', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2202', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2203" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2161', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2203', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2162', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2289"></a><tt class="py-lineno">2289</tt> <tt class="py-line"> <tt id="link-2163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2163', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2204', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2338"></a><tt class="py-lineno">2338</tt> <tt class="py-line"> <tt id="link-2205" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2205', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2206" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2164', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2165', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt> <tt class="py-line"> </tt>
-<a name="L2291"></a><tt class="py-lineno">2291</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2166" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2206', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2207" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2207', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2339"></a><tt class="py-lineno">2339</tt> <tt class="py-line"> </tt>
+<a name="L2340"></a><tt class="py-lineno">2340</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2208" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2166', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2292"></a><tt class="py-lineno">2292</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2167', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2293"></a><tt class="py-lineno">2293</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2168" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2168', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2294"></a><tt class="py-lineno">2294</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2169" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2169', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</tt> <tt class="py-line"> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2298"></a><tt class="py-lineno">2298</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2299"></a><tt class="py-lineno">2299</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2300"></a><tt class="py-lineno">2300</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2302"></a><tt class="py-lineno">2302</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2303"></a><tt class="py-lineno">2303</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2208', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2209" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2209', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2210', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2211', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt> <tt class="py-line"> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2347"></a><tt class="py-lineno">2347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2350"></a><tt class="py-lineno">2350</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2351"></a><tt class="py-lineno">2351</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2352"></a><tt class="py-lineno">2352</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2212" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2170', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2304"></a><tt class="py-lineno">2304</tt> <tt class="py-line"> </tt>
-<a name="L2305"></a><tt class="py-lineno">2305</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2306"></a><tt class="py-lineno">2306</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2171" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2212', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2353"></a><tt class="py-lineno">2353</tt> <tt class="py-line"> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2213" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2171', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2172" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2213', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2172', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2308"></a><tt class="py-lineno">2308</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-def"><a name="L2309"></a><tt class="py-lineno">2309</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-expanded"><a name="L2310"></a><tt class="py-lineno">2310</tt> <tt class="py-line"> <tt id="link-2173" class="py-name"><a title="lxml.etree.Element
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2214', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2357"></a><tt class="py-lineno">2357</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-def"><a name="L2358"></a><tt class="py-lineno">2358</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-expanded"><a name="L2359"></a><tt class="py-lineno">2359</tt> <tt class="py-line"> <tt id="link-2215" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2173', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2215', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2216" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2174', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2175" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2216', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2175', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2311"></a><tt class="py-lineno">2311</tt> <tt class="py-line"> <tt id="link-2176" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2176', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2177" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2217', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt> <tt class="py-line"> <tt id="link-2218" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2218', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2219" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2177', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2178', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2312"></a><tt class="py-lineno">2312</tt> <tt class="py-line"> </tt>
-<a name="L2313"></a><tt class="py-lineno">2313</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2179" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2219', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2220', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt> <tt class="py-line"> </tt>
+<a name="L2362"></a><tt class="py-lineno">2362</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2221" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2179', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2314"></a><tt class="py-lineno">2314</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2180', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2315"></a><tt class="py-lineno">2315</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2181', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2316"></a><tt class="py-lineno">2316</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2182', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt> <tt class="py-line"> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2320"></a><tt class="py-lineno">2320</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2321"></a><tt class="py-lineno">2321</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2322"></a><tt class="py-lineno">2322</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2323"></a><tt class="py-lineno">2323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2221', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2363"></a><tt class="py-lineno">2363</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2222" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2222', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2364"></a><tt class="py-lineno">2364</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2223', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2365"></a><tt class="py-lineno">2365</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2224', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt> <tt class="py-line"> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2369"></a><tt class="py-lineno">2369</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2372"></a><tt class="py-lineno">2372</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2373"></a><tt class="py-lineno">2373</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2374"></a><tt class="py-lineno">2374</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2183', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2326"></a><tt class="py-lineno">2326</tt> <tt class="py-line"> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2329"></a><tt class="py-lineno">2329</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2225', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2375"></a><tt class="py-lineno">2375</tt> <tt class="py-line"> </tt>
+<a name="L2376"></a><tt class="py-lineno">2376</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2378"></a><tt class="py-lineno">2378</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2226" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2184', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2185" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2226', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2185', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2330"></a><tt class="py-lineno">2330</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2331"></a><tt class="py-lineno">2331</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2332"></a><tt class="py-lineno">2332</tt> <tt class="py-line"> <tt id="link-2186" class="py-name"><a title="lxml.etree.Element
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2227', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2379"></a><tt class="py-lineno">2379</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2380"></a><tt class="py-lineno">2380</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2381"></a><tt class="py-lineno">2381</tt> <tt class="py-line"> <tt id="link-2228" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2186', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2228', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2187', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2188" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2229', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2230" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2188', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2333"></a><tt class="py-lineno">2333</tt> <tt class="py-line"> <tt id="link-2189" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2189', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2230', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2382"></a><tt class="py-lineno">2382</tt> <tt class="py-line"> <tt id="link-2231" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2231', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2190', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2191" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2191', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2334"></a><tt class="py-lineno">2334</tt> <tt class="py-line"> </tt>
-<a name="L2335"></a><tt class="py-lineno">2335</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2192" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2232', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2233" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2233', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2383"></a><tt class="py-lineno">2383</tt> <tt class="py-line"> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2234" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2192', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2336"></a><tt class="py-lineno">2336</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2193" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2193', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2337"></a><tt class="py-lineno">2337</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2194" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2194', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2338"></a><tt class="py-lineno">2338</tt> <tt class="py-line"> </tt>
-<a name="L2339"></a><tt class="py-lineno">2339</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2195" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2235" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2235', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2236" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2236', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</tt> <tt class="py-line"> </tt>
+<a name="L2388"></a><tt class="py-lineno">2388</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2237" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2195', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2340"></a><tt class="py-lineno">2340</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2196" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2237', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2389"></a><tt class="py-lineno">2389</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2238" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2196', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2341"></a><tt class="py-lineno">2341</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2197" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2238', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2390"></a><tt class="py-lineno">2390</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2239" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2197', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2342"></a><tt class="py-lineno">2342</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt id="link-2198" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2239', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2391"></a><tt class="py-lineno">2391</tt> <tt class="py-line"> <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt id="link-2240" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2198', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2343"></a><tt class="py-lineno">2343</tt> <tt class="py-line"> </tt>
-<a name="L2344"></a><tt class="py-lineno">2344</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">99</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2346"></a><tt class="py-lineno">2346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt> <tt class="py-line"> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">]</tt> </tt>
-<a name="L2351"></a><tt class="py-lineno">2351</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2352"></a><tt class="py-lineno">2352</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2353"></a><tt class="py-lineno">2353</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2354"></a><tt class="py-lineno">2354</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2355"></a><tt class="py-lineno">2355</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_end_exact"></a><div id="_ETreeTestCaseBase.test_setslice_end_exact-def"><a name="L2356"></a><tt class="py-lineno">2356</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end_exact');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_end_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end_exact-expanded"><a name="L2357"></a><tt class="py-lineno">2357</tt> <tt class="py-line"> <tt id="link-2199" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2240', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt> <tt class="py-line"> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
+<a name="L2394"></a><tt class="py-lineno">2394</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">99</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2395"></a><tt class="py-lineno">2395</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2396"></a><tt class="py-lineno">2396</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2397"></a><tt class="py-lineno">2397</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt> <tt class="py-line"> </tt>
+<a name="L2399"></a><tt class="py-lineno">2399</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">]</tt> </tt>
+<a name="L2400"></a><tt class="py-lineno">2400</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2401"></a><tt class="py-lineno">2401</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2403"></a><tt class="py-lineno">2403</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2404"></a><tt class="py-lineno">2404</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_end_exact"></a><div id="_ETreeTestCaseBase.test_setslice_end_exact-def"><a name="L2405"></a><tt class="py-lineno">2405</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end_exact');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end_exact">test_setslice_end_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_end_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end_exact-expanded"><a name="L2406"></a><tt class="py-lineno">2406</tt> <tt class="py-line"> <tt id="link-2241" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2199', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2200" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2241', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2200', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2201" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2242', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2243" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2201', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt> <tt class="py-line"> <tt id="link-2202" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2202', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2203" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2243', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt> <tt class="py-line"> <tt id="link-2244" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2244', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2245" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2203', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2204', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2359"></a><tt class="py-lineno">2359</tt> <tt class="py-line"> </tt>
-<a name="L2360"></a><tt class="py-lineno">2360</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2205" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2245', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2246', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</tt> <tt class="py-line"> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2247" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2205', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2361"></a><tt class="py-lineno">2361</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2206" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2206', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2207" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2207', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2363"></a><tt class="py-lineno">2363</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2208" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2208', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt> <tt class="py-line"> </tt>
-<a name="L2365"></a><tt class="py-lineno">2365</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2209" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2247', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2410"></a><tt class="py-lineno">2410</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2248', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2249" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2249', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2412"></a><tt class="py-lineno">2412</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2250', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2413"></a><tt class="py-lineno">2413</tt> <tt class="py-line"> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2251" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2209', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2366"></a><tt class="py-lineno">2366</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2251', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2252" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2210', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2252', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2253" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2211', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt> <tt class="py-line"> </tt>
-<a name="L2369"></a><tt class="py-lineno">2369</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2370"></a><tt class="py-lineno">2370</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2372"></a><tt class="py-lineno">2372</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2373"></a><tt class="py-lineno">2373</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2374"></a><tt class="py-lineno">2374</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_single"></a><div id="_ETreeTestCaseBase.test_setslice_single-def"><a name="L2375"></a><tt class="py-lineno">2375</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_single');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_single-expanded"><a name="L2376"></a><tt class="py-lineno">2376</tt> <tt class="py-line"> <tt id="link-2212" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2253', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt> <tt class="py-line"> </tt>
+<a name="L2418"></a><tt class="py-lineno">2418</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2419"></a><tt class="py-lineno">2419</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2420"></a><tt class="py-lineno">2420</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2421"></a><tt class="py-lineno">2421</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2422"></a><tt class="py-lineno">2422</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2423"></a><tt class="py-lineno">2423</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_single"></a><div id="_ETreeTestCaseBase.test_setslice_single-def"><a name="L2424"></a><tt class="py-lineno">2424</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_single');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_single-expanded"><a name="L2425"></a><tt class="py-lineno">2425</tt> <tt class="py-line"> <tt id="link-2254" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2212', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2213" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2254', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2213', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2255', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2214', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2377"></a><tt class="py-lineno">2377</tt> <tt class="py-line"> <tt id="link-2215" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2215', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2216" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2256', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2426"></a><tt class="py-lineno">2426</tt> <tt class="py-line"> <tt id="link-2257" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2257', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2216', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2217', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2378"></a><tt class="py-lineno">2378</tt> <tt class="py-line"> </tt>
-<a name="L2379"></a><tt class="py-lineno">2379</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2218" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2258', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2259', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2427"></a><tt class="py-lineno">2427</tt> <tt class="py-line"> </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2260" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2218', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2380"></a><tt class="py-lineno">2380</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2219" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2219', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2381"></a><tt class="py-lineno">2381</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2220', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</tt> <tt class="py-line"> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2221" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2260', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2429"></a><tt class="py-lineno">2429</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2261" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2261', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2430"></a><tt class="py-lineno">2430</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2262" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2262', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2431"></a><tt class="py-lineno">2431</tt> <tt class="py-line"> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2263" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2221', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2384"></a><tt class="py-lineno">2384</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2222" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2263', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2264" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2222', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt> <tt class="py-line"> </tt>
-<a name="L2386"></a><tt class="py-lineno">2386</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt> </tt>
-<a name="L2387"></a><tt class="py-lineno">2387</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2388"></a><tt class="py-lineno">2388</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2389"></a><tt class="py-lineno">2389</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2390"></a><tt class="py-lineno">2390</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2391"></a><tt class="py-lineno">2391</tt> <tt class="py-line"> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
-<a name="L2393"></a><tt class="py-lineno">2393</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2394"></a><tt class="py-lineno">2394</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2395"></a><tt class="py-lineno">2395</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2396"></a><tt class="py-lineno">2396</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2397"></a><tt class="py-lineno">2397</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_tail"></a><div id="_ETreeTestCaseBase.test_setslice_tail-def"><a name="L2398"></a><tt class="py-lineno">2398</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_tail-expanded"><a name="L2399"></a><tt class="py-lineno">2399</tt> <tt class="py-line"> <tt id="link-2223" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2264', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt> <tt class="py-line"> </tt>
+<a name="L2435"></a><tt class="py-lineno">2435</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt> </tt>
+<a name="L2436"></a><tt class="py-lineno">2436</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2437"></a><tt class="py-lineno">2437</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2438"></a><tt class="py-lineno">2438</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2439"></a><tt class="py-lineno">2439</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2440"></a><tt class="py-lineno">2440</tt> <tt class="py-line"> </tt>
+<a name="L2441"></a><tt class="py-lineno">2441</tt> <tt class="py-line"> <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
+<a name="L2442"></a><tt class="py-lineno">2442</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2443"></a><tt class="py-lineno">2443</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2445"></a><tt class="py-lineno">2445</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2446"></a><tt class="py-lineno">2446</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_tail"></a><div id="_ETreeTestCaseBase.test_setslice_tail-def"><a name="L2447"></a><tt class="py-lineno">2447</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_tail-expanded"><a name="L2448"></a><tt class="py-lineno">2448</tt> <tt class="py-line"> <tt id="link-2265" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2223', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2224" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2265', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2266" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2224', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2266', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2267" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2225', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2400"></a><tt class="py-lineno">2400</tt> <tt class="py-line"> <tt id="link-2226" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2267', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt> <tt class="py-line"> <tt id="link-2268" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2226', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2268', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2269" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2227', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2269', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2228', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2401"></a><tt class="py-lineno">2401</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2<d></d>D2<e></e>E2</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2402"></a><tt class="py-lineno">2402</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2229" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2270', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<c></c>C2<d></d>D2<e></e>E2</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt> <tt class="py-line"> <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2271" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2229', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2403"></a><tt class="py-lineno">2403</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2230" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2230', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2404"></a><tt class="py-lineno">2404</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2231" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2271', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2452"></a><tt class="py-lineno">2452</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2272" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2272', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2453"></a><tt class="py-lineno">2453</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2273" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2231', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2405"></a><tt class="py-lineno">2405</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2232" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2273', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2454"></a><tt class="py-lineno">2454</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2274" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2232', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2406"></a><tt class="py-lineno">2406</tt> <tt class="py-line"> <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2233" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2274', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt> <tt class="py-line"> <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2275" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2233', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2407"></a><tt class="py-lineno">2407</tt> <tt class="py-line"> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-2234" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2234', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X2'</tt> </tt>
-<a name="L2408"></a><tt class="py-lineno">2408</tt> <tt class="py-line"> <tt class="py-name">y</tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2235', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Y2'</tt> </tt>
-<a name="L2409"></a><tt class="py-lineno">2409</tt> <tt class="py-line"> <tt class="py-name">z</tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2236', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Z2'</tt> </tt>
-<a name="L2410"></a><tt class="py-lineno">2410</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2237" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2237', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2412"></a><tt class="py-lineno">2412</tt> <tt class="py-line"> <tt id="link-2238" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2238', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<x></x>X2<y></y>Y2<z></z>Z2<e></e>E2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2413"></a><tt class="py-lineno">2413</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2414"></a><tt class="py-lineno">2414</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_negative"></a><div id="_ETreeTestCaseBase.test_setslice_negative-def"><a name="L2415"></a><tt class="py-lineno">2415</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative-expanded"><a name="L2416"></a><tt class="py-lineno">2416</tt> <tt class="py-line"> <tt id="link-2239" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2275', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt> <tt class="py-line"> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2276', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X2'</tt> </tt>
+<a name="L2457"></a><tt class="py-lineno">2457</tt> <tt class="py-line"> <tt class="py-name">y</tt><tt class="py-op">.</tt><tt id="link-2277" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2277', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Y2'</tt> </tt>
+<a name="L2458"></a><tt class="py-lineno">2458</tt> <tt class="py-line"> <tt class="py-name">z</tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2278', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Z2'</tt> </tt>
+<a name="L2459"></a><tt class="py-lineno">2459</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt> </tt>
+<a name="L2460"></a><tt class="py-lineno">2460</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2279', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt> <tt class="py-line"> <tt id="link-2280" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2280', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b>B2<x></x>X2<y></y>Y2<z></z>Z2<e></e>E2</a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2463"></a><tt class="py-lineno">2463</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_negative"></a><div id="_ETreeTestCaseBase.test_setslice_negative-def"><a name="L2464"></a><tt class="py-lineno">2464</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative-expanded"><a name="L2465"></a><tt class="py-lineno">2465</tt> <tt class="py-line"> <tt id="link-2281" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2239', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2281', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2282" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2240', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2241" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2282', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2283" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2241', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt> <tt class="py-line"> <tt id="link-2242" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2242', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2243" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2283', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2466"></a><tt class="py-lineno">2466</tt> <tt class="py-line"> <tt id="link-2284" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2284', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2285" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2243', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2244', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt> <tt class="py-line"> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2245" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2285', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2286', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2467"></a><tt class="py-lineno">2467</tt> <tt class="py-line"> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2287" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2245', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2246', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2247" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2247', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2422"></a><tt class="py-lineno">2422</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2248', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt> <tt class="py-line"> </tt>
-<a name="L2424"></a><tt class="py-lineno">2424</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2249" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2287', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2469"></a><tt class="py-lineno">2469</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2288" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2288', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2470"></a><tt class="py-lineno">2470</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2289" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2289', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2290" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2290', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2472"></a><tt class="py-lineno">2472</tt> <tt class="py-line"> </tt>
+<a name="L2473"></a><tt class="py-lineno">2473</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2291" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2249', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2425"></a><tt class="py-lineno">2425</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2250" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2291', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2474"></a><tt class="py-lineno">2474</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2292" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2250', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2426"></a><tt class="py-lineno">2426</tt> <tt class="py-line"> </tt>
-<a name="L2427"></a><tt class="py-lineno">2427</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2428"></a><tt class="py-lineno">2428</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2430"></a><tt class="py-lineno">2430</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2431"></a><tt class="py-lineno">2431</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_negative2"></a><div id="_ETreeTestCaseBase.test_setslice_negative2-def"><a name="L2432"></a><tt class="py-lineno">2432</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative2-expanded"><a name="L2433"></a><tt class="py-lineno">2433</tt> <tt class="py-line"> <tt id="link-2251" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2292', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2475"></a><tt class="py-lineno">2475</tt> <tt class="py-line"> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2478"></a><tt class="py-lineno">2478</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2479"></a><tt class="py-lineno">2479</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2480"></a><tt class="py-lineno">2480</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_negative2"></a><div id="_ETreeTestCaseBase.test_setslice_negative2-def"><a name="L2481"></a><tt class="py-lineno">2481</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative2-expanded"><a name="L2482"></a><tt class="py-lineno">2482</tt> <tt class="py-line"> <tt id="link-2293" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2251', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2293', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2252', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2294', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2295" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2253', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2434"></a><tt class="py-lineno">2434</tt> <tt class="py-line"> <tt id="link-2254" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2254', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2295', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2483"></a><tt class="py-lineno">2483</tt> <tt class="py-line"> <tt id="link-2296" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2296', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2297" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2255', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2256', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2435"></a><tt class="py-lineno">2435</tt> <tt class="py-line"> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2257" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2297', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2298', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2484"></a><tt class="py-lineno">2484</tt> <tt class="py-line"> </tt>
+<a name="L2485"></a><tt class="py-lineno">2485</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2299" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2257', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2258" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2258', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2438"></a><tt class="py-lineno">2438</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2259" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2259', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2260" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2260', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2440"></a><tt class="py-lineno">2440</tt> <tt class="py-line"> </tt>
-<a name="L2441"></a><tt class="py-lineno">2441</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2261" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2299', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2300', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2487"></a><tt class="py-lineno">2487</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2301" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2301', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2488"></a><tt class="py-lineno">2488</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2302', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2489"></a><tt class="py-lineno">2489</tt> <tt class="py-line"> </tt>
+<a name="L2490"></a><tt class="py-lineno">2490</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2303" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2261', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2442"></a><tt class="py-lineno">2442</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2262" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2303', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2304" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2262', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2443"></a><tt class="py-lineno">2443</tt> <tt class="py-line"> </tt>
-<a name="L2444"></a><tt class="py-lineno">2444</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2445"></a><tt class="py-lineno">2445</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2446"></a><tt class="py-lineno">2446</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2447"></a><tt class="py-lineno">2447</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2448"></a><tt class="py-lineno">2448</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_empty"></a><div id="_ETreeTestCaseBase.test_setslice_empty-def"><a name="L2449"></a><tt class="py-lineno">2449</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_empty-expanded"><a name="L2450"></a><tt class="py-lineno">2450</tt> <tt class="py-line"> <tt id="link-2263" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2304', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2492"></a><tt class="py-lineno">2492</tt> <tt class="py-line"> </tt>
+<a name="L2493"></a><tt class="py-lineno">2493</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2494"></a><tt class="py-lineno">2494</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2495"></a><tt class="py-lineno">2495</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2497"></a><tt class="py-lineno">2497</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_empty"></a><div id="_ETreeTestCaseBase.test_setslice_empty-def"><a name="L2498"></a><tt class="py-lineno">2498</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_empty-expanded"><a name="L2499"></a><tt class="py-lineno">2499</tt> <tt class="py-line"> <tt id="link-2305" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2263', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2305', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2264', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2265" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2306', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2307" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2265', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2451"></a><tt class="py-lineno">2451</tt> <tt class="py-line"> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2266" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2307', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2500"></a><tt class="py-lineno">2500</tt> <tt class="py-line"> </tt>
+<a name="L2501"></a><tt class="py-lineno">2501</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2308" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2266', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2453"></a><tt class="py-lineno">2453</tt> <tt class="py-line"> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2267" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2308', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2502"></a><tt class="py-lineno">2502</tt> <tt class="py-line"> </tt>
+<a name="L2503"></a><tt class="py-lineno">2503</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2309" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2267', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2268" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2309', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2504"></a><tt class="py-lineno">2504</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2310" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2268', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</tt> <tt class="py-line"> </tt>
-<a name="L2457"></a><tt class="py-lineno">2457</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
-<a name="L2458"></a><tt class="py-lineno">2458</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2459"></a><tt class="py-lineno">2459</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2460"></a><tt class="py-lineno">2460</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2461"></a><tt class="py-lineno">2461</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_elementtree_root"></a><div id="_ETreeTestCaseBase.test_tail_elementtree_root-def"><a name="L2462"></a><tt class="py-lineno">2462</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_elementtree_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_elementtree_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-expanded"><a name="L2463"></a><tt class="py-lineno">2463</tt> <tt class="py-line"> <tt id="link-2269" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2310', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2505"></a><tt class="py-lineno">2505</tt> <tt class="py-line"> </tt>
+<a name="L2506"></a><tt class="py-lineno">2506</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
+<a name="L2507"></a><tt class="py-lineno">2507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2508"></a><tt class="py-lineno">2508</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2509"></a><tt class="py-lineno">2509</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2510"></a><tt class="py-lineno">2510</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_elementtree_root"></a><div id="_ETreeTestCaseBase.test_tail_elementtree_root-def"><a name="L2511"></a><tt class="py-lineno">2511</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_elementtree_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_elementtree_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-expanded"><a name="L2512"></a><tt class="py-lineno">2512</tt> <tt class="py-line"> <tt id="link-2311" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2269', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2311', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2270', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2271" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2312', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2271', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</tt> <tt class="py-line"> <tt id="link-2272" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2313', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2513"></a><tt class="py-lineno">2513</tt> <tt class="py-line"> <tt id="link-2314" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2272', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2314', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2315" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2273', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2315', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2274', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2465"></a><tt class="py-lineno">2465</tt> <tt class="py-line"> </tt>
-<a name="L2466"></a><tt class="py-lineno">2466</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2275" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2316', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2514"></a><tt class="py-lineno">2514</tt> <tt class="py-line"> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2317" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2275', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2467"></a><tt class="py-lineno">2467</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2276', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A2'</tt> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2277" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2317', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2318" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2318', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A2'</tt> </tt>
+<a name="L2517"></a><tt class="py-lineno">2517</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2319" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2277', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2278" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2278', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2469"></a><tt class="py-lineno">2469</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'A2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2279', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2471"></a><tt class="py-lineno">2471</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_getiterator"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator-def"><a name="L2472"></a><tt class="py-lineno">2472</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-expanded"><a name="L2473"></a><tt class="py-lineno">2473</tt> <tt class="py-line"> <tt id="link-2280" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2319', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2320" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2320', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'A2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2519"></a><tt class="py-lineno">2519</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2321" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2321', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2520"></a><tt class="py-lineno">2520</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_getiterator"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator-def"><a name="L2521"></a><tt class="py-lineno">2521</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-expanded"><a name="L2522"></a><tt class="py-lineno">2522</tt> <tt class="py-line"> <tt id="link-2322" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2280', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2322', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2323" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2281', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2282" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2323', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2324" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2282', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2474"></a><tt class="py-lineno">2474</tt> <tt class="py-line"> <tt id="link-2283" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2283', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2324', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2523"></a><tt class="py-lineno">2523</tt> <tt class="py-line"> <tt id="link-2325" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2325', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2284', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2285" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2285', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2475"></a><tt class="py-lineno">2475</tt> <tt class="py-line"> <tt id="link-2286" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2326', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2327', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2524"></a><tt class="py-lineno">2524</tt> <tt class="py-line"> <tt id="link-2328" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2286', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2328', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2287', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2329', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2288', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2476"></a><tt class="py-lineno">2476</tt> <tt class="py-line"> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2289" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2330', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2525"></a><tt class="py-lineno">2525</tt> <tt class="py-line"> </tt>
+<a name="L2526"></a><tt class="py-lineno">2526</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2331" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2289', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2290" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2290', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2479"></a><tt class="py-lineno">2479</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2291" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2291', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2480"></a><tt class="py-lineno">2480</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2292" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2292', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2481"></a><tt class="py-lineno">2481</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2293" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2293', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2482"></a><tt class="py-lineno">2482</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2294" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2331', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2527"></a><tt class="py-lineno">2527</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2332" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2332', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2528"></a><tt class="py-lineno">2528</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2333', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2529"></a><tt class="py-lineno">2529</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2334" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2334', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2530"></a><tt class="py-lineno">2530</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2335" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2335', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2531"></a><tt class="py-lineno">2531</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2336" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2294', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2295" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2295', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2483"></a><tt class="py-lineno">2483</tt> <tt class="py-line"> </tt>
-<a name="L2484"></a><tt class="py-lineno">2484</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2485"></a><tt class="py-lineno">2485</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2296', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2487"></a><tt class="py-lineno">2487</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-def"><a name="L2488"></a><tt class="py-lineno">2488</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator_filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-expanded"><a name="L2489"></a><tt class="py-lineno">2489</tt> <tt class="py-line"> <tt id="link-2297" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2336', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2337" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2337', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</tt> <tt class="py-line"> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2534"></a><tt class="py-lineno">2534</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2535"></a><tt class="py-lineno">2535</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2338" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2338', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2536"></a><tt class="py-lineno">2536</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-def"><a name="L2537"></a><tt class="py-lineno">2537</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator_filter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-expanded"><a name="L2538"></a><tt class="py-lineno">2538</tt> <tt class="py-line"> <tt id="link-2339" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2297', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2339', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2298', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2299" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2340', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2299', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2490"></a><tt class="py-lineno">2490</tt> <tt class="py-line"> <tt id="link-2300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2300', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2301" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2341', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt> <tt class="py-line"> <tt id="link-2342" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2342', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2343" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2301', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2302', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</tt> <tt class="py-line"> <tt id="link-2303" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2343', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2344', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2540"></a><tt class="py-lineno">2540</tt> <tt class="py-line"> <tt id="link-2345" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2303', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2304" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2345', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2346" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2304', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2346', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2347" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2305', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2492"></a><tt class="py-lineno">2492</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2306" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2347', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2541"></a><tt class="py-lineno">2541</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2348" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2306', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2493"></a><tt class="py-lineno">2493</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2307" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2307', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2308" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2308', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2495"></a><tt class="py-lineno">2495</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2309" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2309', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2496"></a><tt class="py-lineno">2496</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2310" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2310', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2497"></a><tt class="py-lineno">2497</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2311" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2348', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2542"></a><tt class="py-lineno">2542</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2349" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2349', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2350', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2544"></a><tt class="py-lineno">2544</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2351" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2351', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2545"></a><tt class="py-lineno">2545</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2352" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2352', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2546"></a><tt class="py-lineno">2546</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2353" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2311', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2312" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2312', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2498"></a><tt class="py-lineno">2498</tt> <tt class="py-line"> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2500"></a><tt class="py-lineno">2500</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2501"></a><tt class="py-lineno">2501</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2313', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2502"></a><tt class="py-lineno">2502</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2314" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2314', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2505"></a><tt class="py-lineno">2505</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2315" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2315', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2506"></a><tt class="py-lineno">2506</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_access"></a><div id="_ETreeTestCaseBase.test_ns_access-def"><a name="L2507"></a><tt class="py-lineno">2507</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_access-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access-expanded"><a name="L2508"></a><tt class="py-lineno">2508</tt> <tt class="py-line"> <tt id="link-2316" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2353', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2354" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2354', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2547"></a><tt class="py-lineno">2547</tt> <tt class="py-line"> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2355', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2551"></a><tt class="py-lineno">2551</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2356', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2552"></a><tt class="py-lineno">2552</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2553"></a><tt class="py-lineno">2553</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2554"></a><tt class="py-lineno">2554</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2357" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2357', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2555"></a><tt class="py-lineno">2555</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_access"></a><div id="_ETreeTestCaseBase.test_ns_access-def"><a name="L2556"></a><tt class="py-lineno">2556</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_access-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access-expanded"><a name="L2557"></a><tt class="py-lineno">2557</tt> <tt class="py-line"> <tt id="link-2358" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2316', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2358', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2359" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2317', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2318" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2359', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2318', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2509"></a><tt class="py-lineno">2509</tt> <tt class="py-line"> <tt id="link-2319" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2319', 'ns', 'link-2319');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2510"></a><tt class="py-lineno">2510</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<x:a xmlns:x="%s"><x:b></x:b></x:a>'</tt> <tt class="py-op">%</tt> <tt id="link-2320" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2320', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2511"></a><tt class="py-lineno">2511</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2321" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2360', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2558"></a><tt class="py-lineno">2558</tt> <tt class="py-line"> <tt id="link-2361" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2361', 'ns', 'link-2361');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2559"></a><tt class="py-lineno">2559</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<x:a xmlns:x="%s"><x:b></x:b></x:a>'</tt> <tt class="py-op">%</tt> <tt id="link-2362" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2362', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2560"></a><tt class="py-lineno">2560</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2363" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2321', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2512"></a><tt class="py-lineno">2512</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2322', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2513"></a><tt class="py-lineno">2513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2323" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2323', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2514"></a><tt class="py-lineno">2514</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2324" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2363', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2561"></a><tt class="py-lineno">2561</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2364" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2364', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2365" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2365', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2563"></a><tt class="py-lineno">2563</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2324', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2515"></a><tt class="py-lineno">2515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2325" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2325', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2516"></a><tt class="py-lineno">2516</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2366', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2367" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2367', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2326', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2517"></a><tt class="py-lineno">2517</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_access2"></a><div id="_ETreeTestCaseBase.test_ns_access2-def"><a name="L2518"></a><tt class="py-lineno">2518</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_access2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access2-expanded"><a name="L2519"></a><tt class="py-lineno">2519</tt> <tt class="py-line"> <tt id="link-2327" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2368', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2566"></a><tt class="py-lineno">2566</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_access2"></a><div id="_ETreeTestCaseBase.test_ns_access2-def"><a name="L2567"></a><tt class="py-lineno">2567</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access2');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_access2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access2-expanded"><a name="L2568"></a><tt class="py-lineno">2568</tt> <tt class="py-line"> <tt id="link-2369" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2327', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2369', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2328', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2370', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2371" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2329', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2520"></a><tt class="py-lineno">2520</tt> <tt class="py-line"> <tt id="link-2330" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2330', 'ns', 'link-2319');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2521"></a><tt class="py-lineno">2521</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<x:a xmlns:x="%s" xmlns:y="%s"><x:b></x:b><y:b></y:b></x:a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2331" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2331', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2523"></a><tt class="py-lineno">2523</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2332" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2371', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2569"></a><tt class="py-lineno">2569</tt> <tt class="py-line"> <tt id="link-2372" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2372', 'ns', 'link-2361');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2570"></a><tt class="py-lineno">2570</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2571"></a><tt class="py-lineno">2571</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<x:a xmlns:x="%s" xmlns:y="%s"><x:b></x:b><y:b></y:b></x:a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2373" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2373', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2374" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2332', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2333', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2334" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2334', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2335" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2374', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2375" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2375', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2376" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2376', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2335', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2336" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2336', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2337" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2377', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2378" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2378', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2379" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2337', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2338" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2379', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2338', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2531"></a><tt class="py-lineno">2531</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_setting"></a><div id="_ETreeTestCaseBase.test_ns_setting-def"><a name="L2532"></a><tt class="py-lineno">2532</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_setting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_setting');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_setting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_setting-expanded"><a name="L2533"></a><tt class="py-lineno">2533</tt> <tt class="py-line"> <tt id="link-2339" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2380', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2580"></a><tt class="py-lineno">2580</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_setting"></a><div id="_ETreeTestCaseBase.test_ns_setting-def"><a name="L2581"></a><tt class="py-lineno">2581</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_setting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_setting');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_setting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_setting-expanded"><a name="L2582"></a><tt class="py-lineno">2582</tt> <tt class="py-line"> <tt id="link-2381" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2339', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2381', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2340', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2382', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2341', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt> <tt class="py-line"> <tt id="link-2342" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2342', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2343" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2383', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt> <tt class="py-line"> <tt id="link-2384" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2384', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2385" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2343', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2344', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2535"></a><tt class="py-lineno">2535</tt> <tt class="py-line"> <tt id="link-2345" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2345', 'ns', 'link-2319');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2536"></a><tt class="py-lineno">2536</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2537"></a><tt class="py-lineno">2537</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2346" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2385', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2386', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt> <tt class="py-line"> <tt id="link-2387" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2387', 'ns', 'link-2361');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2585"></a><tt class="py-lineno">2585</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2586"></a><tt class="py-lineno">2586</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2388" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2346', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2347" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2347', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2538"></a><tt class="py-lineno">2538</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2348" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2348', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2349" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2349', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2350" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2350', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2351" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2351', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2388', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2389" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2389', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2587"></a><tt class="py-lineno">2587</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2390" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2390', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2391" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2391', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2392" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2392', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2393" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2393', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2352', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2542"></a><tt class="py-lineno">2542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2543"></a><tt class="py-lineno">2543</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2353" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2394', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2353', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2544"></a><tt class="py-lineno">2544</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2354" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2354', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2545"></a><tt class="py-lineno">2545</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2395', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2396" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2396', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2355', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2356" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2356', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2547"></a><tt class="py-lineno">2547</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2357" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2397', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2398" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2398', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2399" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2357', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2548"></a><tt class="py-lineno">2548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2549"></a><tt class="py-lineno">2549</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2399', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2400" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2358', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2550"></a><tt class="py-lineno">2550</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2359" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2359', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2400', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2401" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2401', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2600"></a><tt class="py-lineno">2600</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2360', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2552"></a><tt class="py-lineno">2552</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_tag_parse"></a><div id="_ETreeTestCaseBase.test_ns_tag_parse-def"><a name="L2553"></a><tt class="py-lineno">2553</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_tag_parse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_tag_parse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_tag_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_tag_parse-expanded"><a name="L2554"></a><tt class="py-lineno">2554</tt> <tt class="py-line"> <tt id="link-2361" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2402', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2601"></a><tt class="py-lineno">2601</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_tag_parse"></a><div id="_ETreeTestCaseBase.test_ns_tag_parse-def"><a name="L2602"></a><tt class="py-lineno">2602</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_tag_parse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_tag_parse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_tag_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_tag_parse-expanded"><a name="L2603"></a><tt class="py-lineno">2603</tt> <tt class="py-line"> <tt id="link-2403" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2361', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2362" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2403', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2362', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2404', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2363', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt> <tt class="py-line"> <tt id="link-2364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2364', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2365" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2405', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2604"></a><tt class="py-lineno">2604</tt> <tt class="py-line"> <tt id="link-2406" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2406', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2365', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2366', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt> <tt class="py-line"> <tt id="link-2367" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2408', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2605"></a><tt class="py-lineno">2605</tt> <tt class="py-line"> <tt id="link-2409" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2367', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2409', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2368', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2369" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2410', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2369', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt> <tt class="py-line"> </tt>
-<a name="L2558"></a><tt class="py-lineno">2558</tt> <tt class="py-line"> <tt id="link-2370" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2370', 'ns', 'link-2319');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns="%s" xmlns:x="%s"><x:b></x:b><b></b></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2371" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2371', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2372" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2411', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt> <tt class="py-line"> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt> <tt class="py-line"> <tt id="link-2412" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2412', 'ns', 'link-2361');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns="%s" xmlns:x="%s"><x:b></x:b><b></b></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2413" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2413', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2414" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2372', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt> <tt class="py-line"> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2373', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2374" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2374', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2375" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2414', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt> <tt class="py-line"> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2415" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2415', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2416" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2416', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2417" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2375', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2417', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2418" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2376', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2568"></a><tt class="py-lineno">2568</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2377" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2377', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2569"></a><tt class="py-lineno">2569</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2378" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2418', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2419" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2419', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2378', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2570"></a><tt class="py-lineno">2570</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_attr"></a><div id="_ETreeTestCaseBase.test_ns_attr-def"><a name="L2571"></a><tt class="py-lineno">2571</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_attr-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_attr-expanded"><a name="L2572"></a><tt class="py-lineno">2572</tt> <tt class="py-line"> <tt id="link-2379" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2420', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2619"></a><tt class="py-lineno">2619</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_attr"></a><div id="_ETreeTestCaseBase.test_ns_attr-def"><a name="L2620"></a><tt class="py-lineno">2620</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_attr-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_attr-expanded"><a name="L2621"></a><tt class="py-lineno">2621</tt> <tt class="py-line"> <tt id="link-2421" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2379', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2421', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2380', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2381" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2422', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2381', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt> <tt class="py-line"> <tt id="link-2382" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2382', 'ns', 'link-2319');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2383" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2423', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2622"></a><tt class="py-lineno">2622</tt> <tt class="py-line"> <tt id="link-2424" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2424', 'ns', 'link-2361');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2623"></a><tt class="py-lineno">2623</tt> <tt class="py-line"> <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2624"></a><tt class="py-lineno">2624</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2425" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2383', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2384" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2425', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2384', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2385" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2385', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2386" class="py-name"><a title="lxml.etree._Element.set
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2426', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2427" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2427', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2428" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2386', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2578"></a><tt class="py-lineno">2578</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2579"></a><tt class="py-lineno">2579</tt> <tt class="py-line"> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2580"></a><tt class="py-lineno">2580</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2428', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt> <tt class="py-line"> <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2387', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2388" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2388', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2581"></a><tt class="py-lineno">2581</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2582"></a><tt class="py-lineno">2582</tt> <tt class="py-line"> <tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2583"></a><tt class="py-lineno">2583</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2429', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2430" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2430', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt> <tt class="py-line"> <tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2431" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2389', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2584"></a><tt class="py-lineno">2584</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2390', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</tt> <tt class="py-line"> <tt id="link-2391" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2391', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="%s" xmlns:ns1="%s" ns0:foo="Foo" ns1:bar="Bar"></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2392" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2392', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2587"></a><tt class="py-lineno">2587</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2588"></a><tt class="py-lineno">2588</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-2393" class="py-name"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-2393', 'AssertionError', 'link-685');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L2589"></a><tt class="py-lineno">2589</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2394', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2590"></a><tt class="py-lineno">2590</tt> <tt class="py-line"> <tt id="link-2395" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2395', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="%s" xmlns:ns1="%s" ns1:foo="Foo" ns0:bar="Bar"></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt id="link-2396" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2396', 'ns', 'link-2319');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2591"></a><tt class="py-lineno">2591</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2592"></a><tt class="py-lineno">2592</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_move"></a><div id="_ETreeTestCaseBase.test_ns_move-def"><a name="L2593"></a><tt class="py-lineno">2593</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_move');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_move-expanded"><a name="L2594"></a><tt class="py-lineno">2594</tt> <tt class="py-line"> <tt id="link-2397" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2431', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2633"></a><tt class="py-lineno">2633</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2634"></a><tt class="py-lineno">2634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2432', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2635"></a><tt class="py-lineno">2635</tt> <tt class="py-line"> <tt id="link-2433" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2433', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="%s" xmlns:ns1="%s" ns0:foo="Foo" ns1:bar="Bar"></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2434" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2434', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2637"></a><tt class="py-lineno">2637</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-2435" class="py-name"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-2435', 'AssertionError', 'link-685');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L2638"></a><tt class="py-lineno">2638</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2436" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2436', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2639"></a><tt class="py-lineno">2639</tt> <tt class="py-line"> <tt id="link-2437" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2437', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="%s" xmlns:ns1="%s" ns1:foo="Foo" ns0:bar="Bar"></a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt id="link-2438" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2438', 'ns', 'link-2361');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2641"></a><tt class="py-lineno">2641</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_move"></a><div id="_ETreeTestCaseBase.test_ns_move-def"><a name="L2642"></a><tt class="py-lineno">2642</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_move');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_move-expanded"><a name="L2643"></a><tt class="py-lineno">2643</tt> <tt class="py-line"> <tt id="link-2439" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2397', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2398" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2439', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2440" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2398', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2399" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2440', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2441" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2399', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt> <tt class="py-line"> <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2400" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2441', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2644"></a><tt class="py-lineno">2644</tt> <tt class="py-line"> <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2442" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2400', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2442', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2401', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt> <tt class="py-line"> <tt id="link-2402" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2402', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="http://a.b.c"><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt> <tt class="py-line"> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt> <tt class="py-line"> <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt id="link-2403" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2403', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt> <tt class="py-line"> <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2404', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt> <tt class="py-line"> <tt class="py-comment"># removing the originating document could cause a crash/error before</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt> <tt class="py-line"> <tt class="py-comment"># as namespace is not moved along with it</tt> </tt>
-<a name="L2603"></a><tt class="py-lineno">2603</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">one</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt> </tt>
-<a name="L2604"></a><tt class="py-lineno">2604</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://a.b.c}baz'</tt><tt class="py-op">,</tt> <tt class="py-name">two</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2443', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2645"></a><tt class="py-lineno">2645</tt> <tt class="py-line"> <tt id="link-2444" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2444', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="http://a.b.c"><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2646"></a><tt class="py-lineno">2646</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2647"></a><tt class="py-lineno">2647</tt> <tt class="py-line"> </tt>
+<a name="L2648"></a><tt class="py-lineno">2648</tt> <tt class="py-line"> <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt id="link-2445" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2445', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2649"></a><tt class="py-lineno">2649</tt> <tt class="py-line"> <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2446', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2650"></a><tt class="py-lineno">2650</tt> <tt class="py-line"> <tt class="py-comment"># removing the originating document could cause a crash/error before</tt> </tt>
+<a name="L2651"></a><tt class="py-lineno">2651</tt> <tt class="py-line"> <tt class="py-comment"># as namespace is not moved along with it</tt> </tt>
+<a name="L2652"></a><tt class="py-lineno">2652</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">one</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt> </tt>
+<a name="L2653"></a><tt class="py-lineno">2653</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://a.b.c}baz'</tt><tt class="py-op">,</tt> <tt class="py-name">two</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2447" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2405', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2605"></a><tt class="py-lineno">2605</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring-def"><a name="L2606"></a><tt class="py-lineno">2606</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-expanded"><a name="L2607"></a><tt class="py-lineno">2607</tt> <tt class="py-line"> <tt id="link-2406" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2406', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2447', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2654"></a><tt class="py-lineno">2654</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring-def"><a name="L2655"></a><tt class="py-lineno">2655</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-expanded"><a name="L2656"></a><tt class="py-lineno">2656</tt> <tt class="py-line"> <tt id="link-2448" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2448', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2408', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2608"></a><tt class="py-lineno">2608</tt> <tt class="py-line"> <tt id="link-2409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2409', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2449', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2450" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2450', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2657"></a><tt class="py-lineno">2657</tt> <tt class="py-line"> <tt id="link-2451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2451', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2452" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2410', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2452', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2411', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2609"></a><tt class="py-lineno">2609</tt> <tt class="py-line"> <tt id="link-2412" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2412', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="http://a.b.c"><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2610"></a><tt class="py-lineno">2610</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2413" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2413', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2611"></a><tt class="py-lineno">2611</tt> <tt class="py-line"> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2414', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2415" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2415', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2613"></a><tt class="py-lineno">2613</tt> <tt class="py-line"> <tt id="link-2416" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2416', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2614"></a><tt class="py-lineno">2614</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2417" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2417', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2615"></a><tt class="py-lineno">2615</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_default"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-def"><a name="L2616"></a><tt class="py-lineno">2616</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_default');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-expanded"><a name="L2617"></a><tt class="py-lineno">2617</tt> <tt class="py-line"> <tt id="link-2418" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2418', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2419" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2453', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2658"></a><tt class="py-lineno">2658</tt> <tt class="py-line"> <tt id="link-2454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2454', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="http://a.b.c"><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2659"></a><tt class="py-lineno">2659</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2455', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2660"></a><tt class="py-lineno">2660</tt> <tt class="py-line"> </tt>
+<a name="L2661"></a><tt class="py-lineno">2661</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2456" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2456', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2457" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2457', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2662"></a><tt class="py-lineno">2662</tt> <tt class="py-line"> <tt id="link-2458" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2458', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2663"></a><tt class="py-lineno">2663</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2459" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2459', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2664"></a><tt class="py-lineno">2664</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_default"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-def"><a name="L2665"></a><tt class="py-lineno">2665</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_default');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-expanded"><a name="L2666"></a><tt class="py-lineno">2666</tt> <tt class="py-line"> <tt id="link-2460" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2460', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2419', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2420', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt> <tt class="py-line"> <tt id="link-2421" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2421', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2461', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2462" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2462', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2667"></a><tt class="py-lineno">2667</tt> <tt class="py-line"> <tt id="link-2463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2463', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2422', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2464', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2423', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2619"></a><tt class="py-lineno">2619</tt> <tt class="py-line"> <tt id="link-2424" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2424', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns="http://a.b.c"><baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2620"></a><tt class="py-lineno">2620</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2425', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2621"></a><tt class="py-lineno">2621</tt> <tt class="py-line"> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2426', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2427" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2427', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt> <tt class="py-line"> <tt id="link-2428" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2428', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2429" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2429', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2625"></a><tt class="py-lineno">2625</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_root"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-def"><a name="L2626"></a><tt class="py-lineno">2626</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-expanded"><a name="L2627"></a><tt class="py-lineno">2627</tt> <tt class="py-line"> <tt id="link-2430" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2430', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2431" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2465', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2668"></a><tt class="py-lineno">2668</tt> <tt class="py-line"> <tt id="link-2466" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2466', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns="http://a.b.c"><baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2669"></a><tt class="py-lineno">2669</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2467" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2467', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2670"></a><tt class="py-lineno">2670</tt> <tt class="py-line"> </tt>
+<a name="L2671"></a><tt class="py-lineno">2671</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2468', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2469" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2469', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2672"></a><tt class="py-lineno">2672</tt> <tt class="py-line"> <tt id="link-2470" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2470', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2673"></a><tt class="py-lineno">2673</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2471" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2471', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2674"></a><tt class="py-lineno">2674</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_root"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-def"><a name="L2675"></a><tt class="py-lineno">2675</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-expanded"><a name="L2676"></a><tt class="py-lineno">2676</tt> <tt class="py-line"> <tt id="link-2472" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2472', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2473" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2431', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2432', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2628"></a><tt class="py-lineno">2628</tt> <tt class="py-line"> <tt id="link-2433" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2433', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2434" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2473', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2474', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2677"></a><tt class="py-lineno">2677</tt> <tt class="py-line"> <tt id="link-2475" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2475', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2434', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2476', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2435', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2629"></a><tt class="py-lineno">2629</tt> <tt class="py-line"> <tt id="link-2436" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2436', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo xmlns:ns="http://a.b.c"><bar><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2630"></a><tt class="py-lineno">2630</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2437', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2631"></a><tt class="py-lineno">2631</tt> <tt class="py-line"> </tt>
-<a name="L2632"></a><tt class="py-lineno">2632</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2438" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2438', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2439" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2439', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2633"></a><tt class="py-lineno">2633</tt> <tt class="py-line"> <tt id="link-2440" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2440', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2634"></a><tt class="py-lineno">2634</tt> <tt class="py-line"> </tt>
-<a name="L2635"></a><tt class="py-lineno">2635</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2441" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2441', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2636"></a><tt class="py-lineno">2636</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_element"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-def"><a name="L2637"></a><tt class="py-lineno">2637</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-expanded"><a name="L2638"></a><tt class="py-lineno">2638</tt> <tt class="py-line"> <tt id="link-2442" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2477', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2678"></a><tt class="py-lineno">2678</tt> <tt class="py-line"> <tt id="link-2478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2478', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<foo xmlns:ns="http://a.b.c"><bar><ns:baz/></bar></foo>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2679"></a><tt class="py-lineno">2679</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2479', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</tt> <tt class="py-line"> </tt>
+<a name="L2681"></a><tt class="py-lineno">2681</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2480" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2480', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2481" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2481', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2682"></a><tt class="py-lineno">2682</tt> <tt class="py-line"> <tt id="link-2482" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2482', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt> <tt class="py-line"> </tt>
+<a name="L2684"></a><tt class="py-lineno">2684</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2483" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2483', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2685"></a><tt class="py-lineno">2685</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_element"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-def"><a name="L2686"></a><tt class="py-lineno">2686</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-expanded"><a name="L2687"></a><tt class="py-lineno">2687</tt> <tt class="py-line"> <tt id="link-2484" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2442', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2484', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2485" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2443', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2485', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2486" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2444', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2639"></a><tt class="py-lineno">2639</tt> <tt class="py-line"> <tt id="link-2445" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2445', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2486', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2688"></a><tt class="py-lineno">2688</tt> <tt class="py-line"> <tt id="link-2487" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2487', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2488" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2446', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2447" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2447', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2640"></a><tt class="py-lineno">2640</tt> <tt class="py-line"> </tt>
-<a name="L2641"></a><tt class="py-lineno">2641</tt> <tt class="py-line"> <tt id="link-2448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2448', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2449" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2488', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2489', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2689"></a><tt class="py-lineno">2689</tt> <tt class="py-line"> </tt>
+<a name="L2690"></a><tt class="py-lineno">2690</tt> <tt class="py-line"> <tt id="link-2490" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2490', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2491" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2449', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2642"></a><tt class="py-lineno">2642</tt> <tt class="py-line"> <tt class="py-name">bar</tt> <tt class="py-op">=</tt> <tt id="link-2450" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2450', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2451', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}bar"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2643"></a><tt class="py-lineno">2643</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2452" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2452', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">bar</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}baz"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2644"></a><tt class="py-lineno">2644</tt> <tt class="py-line"> </tt>
-<a name="L2645"></a><tt class="py-lineno">2645</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2453', 'findall', 'link-980');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2454', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2646"></a><tt class="py-lineno">2646</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2491', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt> <tt class="py-line"> <tt class="py-name">bar</tt> <tt class="py-op">=</tt> <tt id="link-2492" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2492', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2493', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}bar"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2494" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2494', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">bar</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}baz"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2693"></a><tt class="py-lineno">2693</tt> <tt class="py-line"> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt> <tt class="py-line"> <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2495" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2495', 'findall', 'link-986');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2496" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2496', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2695"></a><tt class="py-lineno">2695</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2455', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2456" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2456', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2647"></a><tt class="py-lineno">2647</tt> <tt class="py-line"> </tt>
-<a name="L2648"></a><tt class="py-lineno">2648</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2457" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2457', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2649"></a><tt class="py-lineno">2649</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_xmlns_move"></a><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-def"><a name="L2650"></a><tt class="py-lineno">2650</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_xmlns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_xmlns_move');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-expanded"><a name="L2651"></a><tt class="py-lineno">2651</tt> <tt class="py-line"> <tt id="link-2458" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2497', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2498" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2498', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2696"></a><tt class="py-lineno">2696</tt> <tt class="py-line"> </tt>
+<a name="L2697"></a><tt class="py-lineno">2697</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2499" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2499', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2698"></a><tt class="py-lineno">2698</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_xmlns_move"></a><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-def"><a name="L2699"></a><tt class="py-lineno">2699</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_xmlns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_xmlns_move');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-expanded"><a name="L2700"></a><tt class="py-lineno">2700</tt> <tt class="py-line"> <tt id="link-2500" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2458', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2459" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2500', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2501" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2459', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2501', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2460', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2652"></a><tt class="py-lineno">2652</tt> <tt class="py-line"> </tt>
-<a name="L2653"></a><tt class="py-lineno">2653</tt> <tt class="py-line"> <tt id="link-2461" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2461', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2502', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2701"></a><tt class="py-lineno">2701</tt> <tt class="py-line"> </tt>
+<a name="L2702"></a><tt class="py-lineno">2702</tt> <tt class="py-line"> <tt id="link-2503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2503', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2504" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2462', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'element'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2654"></a><tt class="py-lineno">2654</tt> <tt class="py-line"> </tt>
-<a name="L2655"></a><tt class="py-lineno">2655</tt> <tt class="py-line"> <tt class="py-name">subelement</tt> <tt class="py-op">=</tt> <tt id="link-2463" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2504', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'element'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2703"></a><tt class="py-lineno">2703</tt> <tt class="py-line"> </tt>
+<a name="L2704"></a><tt class="py-lineno">2704</tt> <tt class="py-line"> <tt class="py-name">subelement</tt> <tt class="py-op">=</tt> <tt id="link-2505" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2463', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'subelement'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2656"></a><tt class="py-lineno">2656</tt> <tt class="py-line"> <tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2657"></a><tt class="py-lineno">2657</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2505', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'subelement'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2705"></a><tt class="py-lineno">2705</tt> <tt class="py-line"> <tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2706"></a><tt class="py-lineno">2706</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2506" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2464', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2658"></a><tt class="py-lineno">2658</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2659"></a><tt class="py-lineno">2659</tt> <tt class="py-line"> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</tt> <tt class="py-line"> <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2506', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt> <tt class="py-line"> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2709"></a><tt class="py-lineno">2709</tt> <tt class="py-line"> <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2507" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2465', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2661"></a><tt class="py-lineno">2661</tt> <tt class="py-line"> </tt>
-<a name="L2662"></a><tt class="py-lineno">2662</tt> <tt class="py-line"> <tt id="link-2466" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2466', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2467" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2467', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">)</tt> </tt>
-<a name="L2663"></a><tt class="py-lineno">2663</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2507', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2710"></a><tt class="py-lineno">2710</tt> <tt class="py-line"> </tt>
+<a name="L2711"></a><tt class="py-lineno">2711</tt> <tt class="py-line"> <tt id="link-2508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2508', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2509" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2509', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">)</tt> </tt>
+<a name="L2712"></a><tt class="py-lineno">2712</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2510" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2468', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2664"></a><tt class="py-lineno">2664</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2665"></a><tt class="py-lineno">2665</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt> <tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2510', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2713"></a><tt class="py-lineno">2713</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2714"></a><tt class="py-lineno">2714</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt> <tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2469', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2666"></a><tt class="py-lineno">2666</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2511', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2715"></a><tt class="py-lineno">2715</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2512" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2470', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2471" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2512', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2471', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2668"></a><tt class="py-lineno">2668</tt> <tt class="py-line"> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2669"></a><tt class="py-lineno">2669</tt> <tt class="py-line"> <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2513', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2716"></a><tt class="py-lineno">2716</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt> <tt class="py-line"> <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2718"></a><tt class="py-lineno">2718</tt> <tt class="py-line"> <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2472', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2670"></a><tt class="py-lineno">2670</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_namespaces_after_serialize"></a><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-def"><a name="L2671"></a><tt class="py-lineno">2671</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_namespaces_after_serialize-toggle" onclick="return toggle('_ETreeTestCaseBase.test_namespaces_after_serialize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-expanded"><a name="L2672"></a><tt class="py-lineno">2672</tt> <tt class="py-line"> <tt id="link-2473" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2514', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2719"></a><tt class="py-lineno">2719</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_namespaces_after_serialize"></a><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-def"><a name="L2720"></a><tt class="py-lineno">2720</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_namespaces_after_serialize-toggle" onclick="return toggle('_ETreeTestCaseBase.test_namespaces_after_serialize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-expanded"><a name="L2721"></a><tt class="py-lineno">2721</tt> <tt class="py-line"> <tt id="link-2515" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2473', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2515', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2474', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2475" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2516', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2475', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2673"></a><tt class="py-lineno">2673</tt> <tt class="py-line"> <tt id="link-2476" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2476', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2517', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L2722"></a><tt class="py-lineno">2722</tt> <tt class="py-line"> <tt id="link-2518" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2518', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2519" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2477', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2478', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2674"></a><tt class="py-lineno">2674</tt> <tt class="py-line"> </tt>
-<a name="L2675"></a><tt class="py-lineno">2675</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2676"></a><tt class="py-lineno">2676</tt> <tt class="py-line"> <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt id="link-2479" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2519', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2520', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2723"></a><tt class="py-lineno">2723</tt> <tt class="py-line"> </tt>
+<a name="L2724"></a><tt class="py-lineno">2724</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2725"></a><tt class="py-lineno">2725</tt> <tt class="py-line"> <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt id="link-2521" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2479', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2677"></a><tt class="py-lineno">2677</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="%s"><ns:baz/></bar></foo>'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2678"></a><tt class="py-lineno">2678</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">.</tt><tt id="link-2480" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2480', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2679"></a><tt class="py-lineno">2679</tt> <tt class="py-line"> </tt>
-<a name="L2680"></a><tt class="py-lineno">2680</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2521', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2726"></a><tt class="py-lineno">2726</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<foo><bar xmlns:ns="%s"><ns:baz/></bar></foo>'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2727"></a><tt class="py-lineno">2727</tt> <tt class="py-line"> <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">.</tt><tt id="link-2522" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2522', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2728"></a><tt class="py-lineno">2728</tt> <tt class="py-line"> </tt>
+<a name="L2729"></a><tt class="py-lineno">2729</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt id="link-2523" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2481', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt> <tt id="link-2482" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2482', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2483" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2483', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2681"></a><tt class="py-lineno">2681</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt id="link-2484" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2523', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt> <tt id="link-2524" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2524', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2525', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2730"></a><tt class="py-lineno">2730</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2484', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2682"></a><tt class="py-lineno">2682</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-def"><a name="L2683"></a><tt class="py-lineno">2683</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-expanded"><a name="L2684"></a><tt class="py-lineno">2684</tt> <tt class="py-line"> <tt id="link-2485" class="py-name"><a title="lxml.etree.fromstring
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2526', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2731"></a><tt class="py-lineno">2731</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-def"><a name="L2732"></a><tt class="py-lineno">2732</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-expanded"><a name="L2733"></a><tt class="py-lineno">2733</tt> <tt class="py-line"> <tt id="link-2527" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2485', 'fromstring', 'link-805');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2486" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2527', 'fromstring', 'link-805');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2486', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2528', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2487', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
-<a name="L2685"></a><tt class="py-lineno">2685</tt> <tt class="py-line"> <tt id="link-2488" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2488', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2529', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
+<a name="L2734"></a><tt class="py-lineno">2734</tt> <tt class="py-line"> <tt id="link-2530" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2530', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2489', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2490" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2490', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2686"></a><tt class="py-lineno">2686</tt> <tt class="py-line"> </tt>
-<a name="L2687"></a><tt class="py-lineno">2687</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt> <tt class="py-line"> <tt id="link-2491" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2491', 'xml', 'link-2491');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2492" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2492', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root xmlns="%s" xmlns:x="%s"><el x:a="test" /></root>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2689"></a><tt class="py-lineno">2689</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2690"></a><tt class="py-lineno">2690</tt> <tt class="py-line"> <tt id="link-2493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2493', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2494" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2531', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2532', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2735"></a><tt class="py-lineno">2735</tt> <tt class="py-line"> </tt>
+<a name="L2736"></a><tt class="py-lineno">2736</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt> <tt class="py-line"> <tt id="link-2533" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2533', 'xml', 'link-2533');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2534', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root xmlns="%s" xmlns:x="%s"><el x:a="test" /></root>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2738"></a><tt class="py-lineno">2738</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2739"></a><tt class="py-lineno">2739</tt> <tt class="py-line"> <tt id="link-2535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2535', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2536" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2494', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2495" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2495', 'xml', 'link-2491');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2691"></a><tt class="py-lineno">2691</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2496" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2496', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2536', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2537" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2537', 'xml', 'link-2533');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2740"></a><tt class="py-lineno">2740</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2538" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2538', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2497', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2692"></a><tt class="py-lineno">2692</tt> <tt class="py-line"> </tt>
-<a name="L2693"></a><tt class="py-lineno">2693</tt> <tt class="py-line"> <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2498" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2498', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2499', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2694"></a><tt class="py-lineno">2694</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2500" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2500', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt> <tt class="py-line"> </tt>
-<a name="L2696"></a><tt class="py-lineno">2696</tt> <tt class="py-line"> <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2501" class="py-name"><a title="lxml.etree.fromstring
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2539', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2741"></a><tt class="py-lineno">2741</tt> <tt class="py-line"> </tt>
+<a name="L2742"></a><tt class="py-lineno">2742</tt> <tt class="py-line"> <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2540" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2540', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2541" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2541', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2743"></a><tt class="py-lineno">2743</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2542', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2744"></a><tt class="py-lineno">2744</tt> <tt class="py-line"> </tt>
+<a name="L2745"></a><tt class="py-lineno">2745</tt> <tt class="py-line"> <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2543" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2501', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2697"></a><tt class="py-lineno">2697</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2543', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2746"></a><tt class="py-lineno">2746</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2544" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2502', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2698"></a><tt class="py-lineno">2698</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-def"><a name="L2699"></a><tt class="py-lineno">2699</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-expanded"><a name="L2700"></a><tt class="py-lineno">2700</tt> <tt class="py-line"> <tt id="link-2503" class="py-name"><a title="lxml.etree.fromstring
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2544', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2747"></a><tt class="py-lineno">2747</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-def"><a name="L2748"></a><tt class="py-lineno">2748</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-expanded"><a name="L2749"></a><tt class="py-lineno">2749</tt> <tt class="py-line"> <tt id="link-2545" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2503', 'fromstring', 'link-805');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2504" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2545', 'fromstring', 'link-805');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2504', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2546', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2505', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
-<a name="L2701"></a><tt class="py-lineno">2701</tt> <tt class="py-line"> <tt id="link-2506" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2506', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2507" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2547', 'fromstring', 'link-805');">fromstring</a></tt> </tt>
+<a name="L2750"></a><tt class="py-lineno">2750</tt> <tt class="py-line"> <tt id="link-2548" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2548', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2549" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2507', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2508', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2702"></a><tt class="py-lineno">2702</tt> <tt class="py-line"> </tt>
-<a name="L2703"></a><tt class="py-lineno">2703</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2704"></a><tt class="py-lineno">2704</tt> <tt class="py-line"> <tt id="link-2509" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2509', 'xml', 'link-2491');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2510" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2510', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root xmlns="%s" xmlns:x="%s"><el x:a="test" /></root>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2705"></a><tt class="py-lineno">2705</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2706"></a><tt class="py-lineno">2706</tt> <tt class="py-line"> <tt id="link-2511" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2511', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2512" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2549', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2550', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2751"></a><tt class="py-lineno">2751</tt> <tt class="py-line"> </tt>
+<a name="L2752"></a><tt class="py-lineno">2752</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2753"></a><tt class="py-lineno">2753</tt> <tt class="py-line"> <tt id="link-2551" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2551', 'xml', 'link-2533');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2552" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2552', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root xmlns="%s" xmlns:x="%s"><el x:a="test" /></root>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2754"></a><tt class="py-lineno">2754</tt> <tt class="py-line"> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2755"></a><tt class="py-lineno">2755</tt> <tt class="py-line"> <tt id="link-2553" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2553', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2554" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2512', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2513" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2513', 'xml', 'link-2491');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2707"></a><tt class="py-lineno">2707</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2514" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2514', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2515" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2554', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2555" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2555', 'xml', 'link-2533');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2756"></a><tt class="py-lineno">2756</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2556" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2556', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2557" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2515', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt> <tt class="py-line"> </tt>
-<a name="L2709"></a><tt class="py-lineno">2709</tt> <tt class="py-line"> <tt id="link-2516" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2516', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2557', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2757"></a><tt class="py-lineno">2757</tt> <tt class="py-line"> </tt>
+<a name="L2758"></a><tt class="py-lineno">2758</tt> <tt class="py-line"> <tt id="link-2558" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2558', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2517', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2710"></a><tt class="py-lineno">2710</tt> <tt class="py-line"> </tt>
-<a name="L2711"></a><tt class="py-lineno">2711</tt> <tt class="py-line"> <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2518" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2518', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2519" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2519', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2712"></a><tt class="py-lineno">2712</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2520', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2713"></a><tt class="py-lineno">2713</tt> <tt class="py-line"> </tt>
-<a name="L2714"></a><tt class="py-lineno">2714</tt> <tt class="py-line"> <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2521" class="py-name"><a title="lxml.etree.fromstring
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2559', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2759"></a><tt class="py-lineno">2759</tt> <tt class="py-line"> </tt>
+<a name="L2760"></a><tt class="py-lineno">2760</tt> <tt class="py-line"> <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2560" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2560', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2561" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2561', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2761"></a><tt class="py-lineno">2761</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2562" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2562', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2762"></a><tt class="py-lineno">2762</tt> <tt class="py-line"> </tt>
+<a name="L2763"></a><tt class="py-lineno">2763</tt> <tt class="py-line"> <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2563" class="py-name"><a title="lxml.etree.fromstring
lxml.html.html5parser.fromstring
lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2521', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2715"></a><tt class="py-lineno">2715</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2522" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2563', 'fromstring', 'link-805');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2764"></a><tt class="py-lineno">2764</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2522', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2716"></a><tt class="py-lineno">2716</tt> <tt class="py-line"> </tt>
-<a name="L2717"></a><tt class="py-lineno">2717</tt> <tt class="py-line"> <tt id="link-2523" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2523', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_register_namespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_register_namespace"></a><div id="_ETreeTestCaseBase.test_register_namespace-def"><a name="L2718"></a><tt class="py-lineno">2718</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_register_namespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_register_namespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_register_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_register_namespace-expanded"><a name="L2719"></a><tt class="py-lineno">2719</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L2720"></a><tt class="py-lineno">2720</tt> <tt class="py-line"> <tt id="link-2524" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2564', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2765"></a><tt class="py-lineno">2765</tt> <tt class="py-line"> </tt>
+<a name="L2766"></a><tt class="py-lineno">2766</tt> <tt class="py-line"> <tt id="link-2565" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2565', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_register_namespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_register_namespace"></a><div id="_ETreeTestCaseBase.test_register_namespace-def"><a name="L2767"></a><tt class="py-lineno">2767</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_register_namespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_register_namespace');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_register_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_register_namespace-expanded"><a name="L2768"></a><tt class="py-lineno">2768</tt> <tt class="py-line"> <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt> <tt class="py-line"> <tt id="link-2566" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2524', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2566', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2525', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2567', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2526', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2721"></a><tt class="py-lineno">2721</tt> <tt class="py-line"> <tt id="link-2527" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2527', 'prefix', 'link-2527');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TESTPREFIX'</tt> </tt>
-<a name="L2722"></a><tt class="py-lineno">2722</tt> <tt class="py-line"> <tt id="link-2528" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace,Function lxml.tests.selftest.namespace()=lxml.tests.selftest-module.html#namespace"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2528', 'namespace', 'link-2528');">namespace</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://seriously.unknown/namespace/URI'</tt> </tt>
-<a name="L2723"></a><tt class="py-lineno">2723</tt> <tt class="py-line"> </tt>
-<a name="L2724"></a><tt class="py-lineno">2724</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2529" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2568', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2770"></a><tt class="py-lineno">2770</tt> <tt class="py-line"> <tt id="link-2569" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2569', 'prefix', 'link-2569');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TESTPREFIX'</tt> </tt>
+<a name="L2771"></a><tt class="py-lineno">2771</tt> <tt class="py-line"> <tt id="link-2570" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace,Function lxml.tests.selftest.namespace()=lxml.tests.selftest-module.html#namespace"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2570', 'namespace', 'link-2570');">namespace</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://seriously.unknown/namespace/URI'</tt> </tt>
+<a name="L2772"></a><tt class="py-lineno">2772</tt> <tt class="py-line"> </tt>
+<a name="L2773"></a><tt class="py-lineno">2773</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2571" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2529', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2530" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2530', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2725"></a><tt class="py-lineno">2725</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2531" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2531', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:test xmlns:ns0="%s"></ns0:test>'</tt> <tt class="py-op">%</tt> <tt id="link-2532" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2532', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2726"></a><tt class="py-lineno">2726</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2533" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2533', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt> <tt class="py-line"> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2534" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2571', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2572" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2572', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2774"></a><tt class="py-lineno">2774</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2573" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2573', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:test xmlns:ns0="%s"></ns0:test>'</tt> <tt class="py-op">%</tt> <tt id="link-2574" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2574', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2775"></a><tt class="py-lineno">2775</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2575', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2776"></a><tt class="py-lineno">2776</tt> <tt class="py-line"> </tt>
+<a name="L2777"></a><tt class="py-lineno">2777</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2576" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2534', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2535" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2535', 'register_namespace', 'link-2535');">register_namespace</a></tt><tt class="py-op">(</tt><tt id="link-2536" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2536', 'prefix', 'link-2527');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2537" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2537', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2538" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2576', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2577', 'register_namespace', 'link-2577');">register_namespace</a></tt><tt class="py-op">(</tt><tt id="link-2578" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2578', 'prefix', 'link-2569');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2579" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2579', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2778"></a><tt class="py-lineno">2778</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2580" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2538', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2539" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2539', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2730"></a><tt class="py-lineno">2730</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2540" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2540', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%s:test xmlns:%s="%s"></%s:test>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2731"></a><tt class="py-lineno">2731</tt> <tt class="py-line"> <tt id="link-2541" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2541', 'prefix', 'link-2527');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2542" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2542', 'prefix', 'link-2527');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2543" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2543', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-2544" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2544', 'prefix', 'link-2527');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2732"></a><tt class="py-lineno">2732</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2545', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2733"></a><tt class="py-lineno">2733</tt> <tt class="py-line"> </tt>
-<a name="L2734"></a><tt class="py-lineno">2734</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2580', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2581" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2581', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2779"></a><tt class="py-lineno">2779</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2582" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2582', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<%s:test xmlns:%s="%s"></%s:test>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2780"></a><tt class="py-lineno">2780</tt> <tt class="py-line"> <tt id="link-2583" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2583', 'prefix', 'link-2569');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2584" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2584', 'prefix', 'link-2569');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2585" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2585', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-2586" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2586', 'prefix', 'link-2569');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2781"></a><tt class="py-lineno">2781</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2587" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2587', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2782"></a><tt class="py-lineno">2782</tt> <tt class="py-line"> </tt>
+<a name="L2783"></a><tt class="py-lineno">2783</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2588" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2546', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2547', 'register_namespace', 'link-2535');">register_namespace</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ns25'</tt><tt class="py-op">,</tt> <tt id="link-2548" class="py-name"><a title="lxml.etree.QName.namespace
-lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2548', 'namespace', 'link-2528');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2735"></a><tt class="py-lineno">2735</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tostring"></a><div id="_ETreeTestCaseBase.test_tostring-def"><a name="L2736"></a><tt class="py-lineno">2736</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring-expanded"><a name="L2737"></a><tt class="py-lineno">2737</tt> <tt class="py-line"> <tt id="link-2549" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2549', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2588', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2589" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2589', 'register_namespace', 'link-2577');">register_namespace</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ns25'</tt><tt class="py-op">,</tt> <tt id="link-2590" class="py-name"><a title="lxml.etree.QName.namespace
+lxml.tests.selftest.namespace" class="py-name" href="#" onclick="return doclink('link-2590', 'namespace', 'link-2570');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2784"></a><tt class="py-lineno">2784</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tostring"></a><div id="_ETreeTestCaseBase.test_tostring-def"><a name="L2785"></a><tt class="py-lineno">2785</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring-expanded"><a name="L2786"></a><tt class="py-lineno">2786</tt> <tt class="py-line"> <tt id="link-2591" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2591', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2550', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2551', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2738"></a><tt class="py-lineno">2738</tt> <tt class="py-line"> <tt id="link-2552" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2592', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2593" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2593', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2787"></a><tt class="py-lineno">2787</tt> <tt class="py-line"> <tt id="link-2594" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2552', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2594', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2595" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2553', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2595', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2554', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2739"></a><tt class="py-lineno">2739</tt> <tt class="py-line"> <tt id="link-2555" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2555', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2596', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2788"></a><tt class="py-lineno">2788</tt> <tt class="py-line"> <tt id="link-2597" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2597', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2598" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2556', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2557" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2557', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2740"></a><tt class="py-lineno">2740</tt> <tt class="py-line"> </tt>
-<a name="L2741"></a><tt class="py-lineno">2741</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2558" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2598', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2599', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2789"></a><tt class="py-lineno">2789</tt> <tt class="py-line"> </tt>
+<a name="L2790"></a><tt class="py-lineno">2790</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2600" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2558', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2742"></a><tt class="py-lineno">2742</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2559" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2559', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2743"></a><tt class="py-lineno">2743</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2560" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2560', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2744"></a><tt class="py-lineno">2744</tt> <tt class="py-line"> </tt>
-<a name="L2745"></a><tt class="py-lineno">2745</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2561" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2561', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2746"></a><tt class="py-lineno">2746</tt> <tt class="py-line"> <tt id="link-2562" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2562', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2563" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2563', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2747"></a><tt class="py-lineno">2747</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_element"></a><div id="_ETreeTestCaseBase.test_tostring_element-def"><a name="L2748"></a><tt class="py-lineno">2748</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element-expanded"><a name="L2749"></a><tt class="py-lineno">2749</tt> <tt class="py-line"> <tt id="link-2564" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2564', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2600', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2791"></a><tt class="py-lineno">2791</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2601" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2601', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2792"></a><tt class="py-lineno">2792</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2602" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2602', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2793"></a><tt class="py-lineno">2793</tt> <tt class="py-line"> </tt>
+<a name="L2794"></a><tt class="py-lineno">2794</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2603" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2603', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c></c></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2795"></a><tt class="py-lineno">2795</tt> <tt class="py-line"> <tt id="link-2604" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2604', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2605" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2605', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2796"></a><tt class="py-lineno">2796</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_element"></a><div id="_ETreeTestCaseBase.test_tostring_element-def"><a name="L2797"></a><tt class="py-lineno">2797</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element-expanded"><a name="L2798"></a><tt class="py-lineno">2798</tt> <tt class="py-line"> <tt id="link-2606" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2606', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2565', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2566', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2750"></a><tt class="py-lineno">2750</tt> <tt class="py-line"> <tt id="link-2567" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2607', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2608" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2608', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2799"></a><tt class="py-lineno">2799</tt> <tt class="py-line"> <tt id="link-2609" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2567', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2609', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2568', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2610', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2611" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2569', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2751"></a><tt class="py-lineno">2751</tt> <tt class="py-line"> <tt id="link-2570" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2570', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2571" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2611', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2800"></a><tt class="py-lineno">2800</tt> <tt class="py-line"> <tt id="link-2612" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2612', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2613" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2571', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2572', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2752"></a><tt class="py-lineno">2752</tt> <tt class="py-line"> </tt>
-<a name="L2753"></a><tt class="py-lineno">2753</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2573" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2613', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2614" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2614', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2801"></a><tt class="py-lineno">2801</tt> <tt class="py-line"> </tt>
+<a name="L2802"></a><tt class="py-lineno">2802</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2615" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2573', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2754"></a><tt class="py-lineno">2754</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2574" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2574', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2755"></a><tt class="py-lineno">2755</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2575" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2575', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2756"></a><tt class="py-lineno">2756</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2576" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2576', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2757"></a><tt class="py-lineno">2757</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2577" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2577', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2758"></a><tt class="py-lineno">2758</tt> <tt class="py-line"> <tt id="link-2578" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2578', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2579" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2579', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2759"></a><tt class="py-lineno">2759</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2580" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2580', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><d></d></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2760"></a><tt class="py-lineno">2760</tt> <tt class="py-line"> <tt id="link-2581" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2581', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2582" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2582', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2761"></a><tt class="py-lineno">2761</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_element_tail"></a><div id="_ETreeTestCaseBase.test_tostring_element_tail-def"><a name="L2762"></a><tt class="py-lineno">2762</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element_tail-expanded"><a name="L2763"></a><tt class="py-lineno">2763</tt> <tt class="py-line"> <tt id="link-2583" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2583', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2615', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2803"></a><tt class="py-lineno">2803</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2616', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2804"></a><tt class="py-lineno">2804</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2617" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2617', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2805"></a><tt class="py-lineno">2805</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2618" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2618', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2806"></a><tt class="py-lineno">2806</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2619" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2619', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b></b>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2807"></a><tt class="py-lineno">2807</tt> <tt class="py-line"> <tt id="link-2620" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2620', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2621" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2621', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2808"></a><tt class="py-lineno">2808</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2622" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2622', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<c><d></d></c>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</tt> <tt class="py-line"> <tt id="link-2623" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2623', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2624" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2624', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2810"></a><tt class="py-lineno">2810</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_element_tail"></a><div id="_ETreeTestCaseBase.test_tostring_element_tail-def"><a name="L2811"></a><tt class="py-lineno">2811</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element_tail-expanded"><a name="L2812"></a><tt class="py-lineno">2812</tt> <tt class="py-line"> <tt id="link-2625" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2625', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2626" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2584', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2585" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2585', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2764"></a><tt class="py-lineno">2764</tt> <tt class="py-line"> <tt id="link-2586" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2626', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2627', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2813"></a><tt class="py-lineno">2813</tt> <tt class="py-line"> <tt id="link-2628" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2586', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2587" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2628', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2587', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2588" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2629', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2630" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2588', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2765"></a><tt class="py-lineno">2765</tt> <tt class="py-line"> <tt id="link-2589" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2589', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2630', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</tt> <tt class="py-line"> <tt id="link-2631" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2631', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2590', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2591" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2591', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2766"></a><tt class="py-lineno">2766</tt> <tt class="py-line"> </tt>
-<a name="L2767"></a><tt class="py-lineno">2767</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2592" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2633', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2815"></a><tt class="py-lineno">2815</tt> <tt class="py-line"> </tt>
+<a name="L2816"></a><tt class="py-lineno">2816</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2634" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2592', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2593" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2593', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2769"></a><tt class="py-lineno">2769</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2594" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2594', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2770"></a><tt class="py-lineno">2770</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2595" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2595', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2771"></a><tt class="py-lineno">2771</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2596', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L2772"></a><tt class="py-lineno">2772</tt> <tt class="py-line"> </tt>
-<a name="L2773"></a><tt class="py-lineno">2773</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2597" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2597', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2598" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2598', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b/>Foo'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L2774"></a><tt class="py-lineno">2774</tt> <tt class="py-line"> <tt id="link-2599" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2599', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2600" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2600', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b />Foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2775"></a><tt class="py-lineno">2775</tt> <tt class="py-line"> </tt>
-<a name="L2776"></a><tt class="py-lineno">2776</tt> <tt class="py-line"> <tt id="link-2601" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2601', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_method_html"></a><div id="_ETreeTestCaseBase.test_tostring_method_html-def"><a name="L2777"></a><tt class="py-lineno">2777</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_html-expanded"><a name="L2778"></a><tt class="py-lineno">2778</tt> <tt class="py-line"> <tt id="link-2602" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2602', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2603" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2634', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2817"></a><tt class="py-lineno">2817</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2635" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2635', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2818"></a><tt class="py-lineno">2818</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2636', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2819"></a><tt class="py-lineno">2819</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2637" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2637', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2820"></a><tt class="py-lineno">2820</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2638" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2638', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L2821"></a><tt class="py-lineno">2821</tt> <tt class="py-line"> </tt>
+<a name="L2822"></a><tt class="py-lineno">2822</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2639" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2639', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2640', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b/>Foo'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L2823"></a><tt class="py-lineno">2823</tt> <tt class="py-line"> <tt id="link-2641" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2641', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2642" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2642', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b />Foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2824"></a><tt class="py-lineno">2824</tt> <tt class="py-line"> </tt>
+<a name="L2825"></a><tt class="py-lineno">2825</tt> <tt class="py-line"> <tt id="link-2643" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2643', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_method_html"></a><div id="_ETreeTestCaseBase.test_tostring_method_html-def"><a name="L2826"></a><tt class="py-lineno">2826</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_html');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_html-expanded"><a name="L2827"></a><tt class="py-lineno">2827</tt> <tt class="py-line"> <tt id="link-2644" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2644', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2603', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2604" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2604', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2779"></a><tt class="py-lineno">2779</tt> <tt class="py-line"> <tt id="link-2605" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2645', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2646', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2828"></a><tt class="py-lineno">2828</tt> <tt class="py-line"> <tt id="link-2647" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2605', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2647', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2606', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2648', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2649" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2607', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2780"></a><tt class="py-lineno">2780</tt> <tt class="py-line"> <tt id="link-2608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2608', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2649', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2829"></a><tt class="py-lineno">2829</tt> <tt class="py-line"> <tt id="link-2650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2650', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2651" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2609', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2610', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2781"></a><tt class="py-lineno">2781</tt> <tt class="py-line"> </tt>
-<a name="L2782"></a><tt class="py-lineno">2782</tt> <tt class="py-line"> <tt id="link-2611" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2651', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2652', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2830"></a><tt class="py-lineno">2830</tt> <tt class="py-line"> </tt>
+<a name="L2831"></a><tt class="py-lineno">2831</tt> <tt class="py-line"> <tt id="link-2653" class="py-name"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2611', 'html', 'link-1081');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-2612" class="py-name"><a title="lxml.etree.Element
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2653', 'html', 'link-1087');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-2654" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2612', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2783"></a><tt class="py-lineno">2783</tt> <tt class="py-line"> <tt id="link-2613" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2613', 'body', 'link-1083');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-2614" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2614', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2615" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2654', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt> <tt class="py-line"> <tt id="link-2655" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2655', 'body', 'link-1089');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-2656" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2656', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2657" class="py-name"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2615', 'html', 'link-1081');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2784"></a><tt class="py-lineno">2784</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2616', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2617" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2617', 'body', 'link-1083');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2785"></a><tt class="py-lineno">2785</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-2618" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2657', 'html', 'link-1087');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-2658" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2658', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2659" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2659', 'body', 'link-1089');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2618', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
-<a name="L2786"></a><tt class="py-lineno">2786</tt> <tt class="py-line"> <tt id="link-2619" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2619', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2620', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
-<a name="L2787"></a><tt class="py-lineno">2787</tt> <tt class="py-line"> </tt>
-<a name="L2788"></a><tt class="py-lineno">2788</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2621" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2621', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><body><p>html<br>test</p></body></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</tt> <tt class="py-line"> <tt id="link-2622" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2622', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2623" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2660', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
+<a name="L2835"></a><tt class="py-lineno">2835</tt> <tt class="py-line"> <tt id="link-2661" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2661', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2662', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt> <tt class="py-line"> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2663" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2663', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html><body><p>html<br>test</p></body></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2838"></a><tt class="py-lineno">2838</tt> <tt class="py-line"> <tt id="link-2664" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2664', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2665" class="py-name"><a title="lxml.html
lxml.html.diff.href_token.html
lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2623', 'html', 'link-1081');">html</a></tt><tt class="py-op">,</tt> <tt id="link-2624" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2624', 'method', 'link-1095');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2790"></a><tt class="py-lineno">2790</tt> <tt class="py-line"> </tt>
-<a name="L2791"></a><tt class="py-lineno">2791</tt> <tt class="py-line"> <tt id="link-2625" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2625', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_method_text"></a><div id="_ETreeTestCaseBase.test_tostring_method_text-def"><a name="L2792"></a><tt class="py-lineno">2792</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_text-expanded"><a name="L2793"></a><tt class="py-lineno">2793</tt> <tt class="py-line"> <tt id="link-2626" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2626', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2665', 'html', 'link-1087');">html</a></tt><tt class="py-op">,</tt> <tt id="link-2666" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2666', 'method', 'link-1101');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2839"></a><tt class="py-lineno">2839</tt> <tt class="py-line"> </tt>
+<a name="L2840"></a><tt class="py-lineno">2840</tt> <tt class="py-line"> <tt id="link-2667" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2667', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_method_text"></a><div id="_ETreeTestCaseBase.test_tostring_method_text-def"><a name="L2841"></a><tt class="py-lineno">2841</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_text');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_text-expanded"><a name="L2842"></a><tt class="py-lineno">2842</tt> <tt class="py-line"> <tt id="link-2668" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2668', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2627', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2628" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2628', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt> <tt class="py-line"> <tt id="link-2629" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2669', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2670" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2670', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2843"></a><tt class="py-lineno">2843</tt> <tt class="py-line"> <tt id="link-2671" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2629', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2630" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2671', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2672" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2630', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2631" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2672', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2673" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2631', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L2795"></a><tt class="py-lineno">2795</tt> <tt class="py-line"> <tt id="link-2632" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2632', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2673', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2844"></a><tt class="py-lineno">2844</tt> <tt class="py-line"> <tt id="link-2674" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2674', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2633', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2634" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2634', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</tt> <tt class="py-line"> </tt>
-<a name="L2797"></a><tt class="py-lineno">2797</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2635" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2675', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2676', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2845"></a><tt class="py-lineno">2845</tt> <tt class="py-line"> </tt>
+<a name="L2846"></a><tt class="py-lineno">2846</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2677" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2635', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2798"></a><tt class="py-lineno">2798</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2677', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2847"></a><tt class="py-lineno">2847</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2636', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L2799"></a><tt class="py-lineno">2799</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2637', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L2800"></a><tt class="py-lineno">2800</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2638', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2801"></a><tt class="py-lineno">2801</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2639" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2678', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L2848"></a><tt class="py-lineno">2848</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2679" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2679', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L2849"></a><tt class="py-lineno">2849</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2680" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2680', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2850"></a><tt class="py-lineno">2850</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2639', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L2802"></a><tt class="py-lineno">2802</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2640', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L2803"></a><tt class="py-lineno">2803</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2641" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2641', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2804"></a><tt class="py-lineno">2804</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2681', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L2851"></a><tt class="py-lineno">2851</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2682" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2682', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L2852"></a><tt class="py-lineno">2852</tt> <tt class="py-line"> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2683" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2683', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2853"></a><tt class="py-lineno">2853</tt> <tt class="py-line"> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2684" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2642', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L2805"></a><tt class="py-lineno">2805</tt> <tt class="py-line"> </tt>
-<a name="L2806"></a><tt class="py-lineno">2806</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2643" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2643', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2807"></a><tt class="py-lineno">2807</tt> <tt class="py-line"> <tt id="link-2644" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2644', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2645" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2645', 'method', 'link-1095');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2808"></a><tt class="py-lineno">2808</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse"></a><div id="_ETreeTestCaseBase.test_iterparse-def"><a name="L2809"></a><tt class="py-lineno">2809</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse-expanded"><a name="L2810"></a><tt class="py-lineno">2810</tt> <tt class="py-line"> <tt id="link-2646" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html,Function lxml.tests.selftest.iterparse()=lxml.tests.selftest-module.html#iterparse"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2646', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2647" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2647', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2648', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2811"></a><tt class="py-lineno">2811</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2812"></a><tt class="py-lineno">2812</tt> <tt class="py-line"> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2649" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2649', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2814"></a><tt class="py-lineno">2814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2815"></a><tt class="py-lineno">2815</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2650" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2650', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2816"></a><tt class="py-lineno">2816</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2817"></a><tt class="py-lineno">2817</tt> <tt class="py-line"> <tt id="link-2651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2651', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2652', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2818"></a><tt class="py-lineno">2818</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2819"></a><tt class="py-lineno">2819</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2653" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2653', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2654', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2655" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2655', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2820"></a><tt class="py-lineno">2820</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2821"></a><tt class="py-lineno">2821</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_incomplete"></a><div id="_ETreeTestCaseBase.test_iterparse_incomplete-def"><a name="L2822"></a><tt class="py-lineno">2822</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_incomplete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_incomplete">test_iterparse_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_incomplete-expanded"><a name="L2823"></a><tt class="py-lineno">2823</tt> <tt class="py-line"> <tt id="link-2656" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2656', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2657', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2658', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2824"></a><tt class="py-lineno">2824</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2825"></a><tt class="py-lineno">2825</tt> <tt class="py-line"> </tt>
-<a name="L2826"></a><tt class="py-lineno">2826</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2659" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2659', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2660', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2829"></a><tt class="py-lineno">2829</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-2661" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2661', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-2662" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2684', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L2854"></a><tt class="py-lineno">2854</tt> <tt class="py-line"> </tt>
+<a name="L2855"></a><tt class="py-lineno">2855</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2685" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2685', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2856"></a><tt class="py-lineno">2856</tt> <tt class="py-line"> <tt id="link-2686" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2686', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2687" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2687', 'method', 'link-1101');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2857"></a><tt class="py-lineno">2857</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse"></a><div id="_ETreeTestCaseBase.test_iterparse-def"><a name="L2858"></a><tt class="py-lineno">2858</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse-expanded"><a name="L2859"></a><tt class="py-lineno">2859</tt> <tt class="py-line"> <tt id="link-2688" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html,Function lxml.tests.selftest.iterparse()=lxml.tests.selftest-module.html#iterparse"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2688', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2689" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2689', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2690" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2690', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2860"></a><tt class="py-lineno">2860</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt> <tt class="py-line"> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2691', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2692" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2692', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2865"></a><tt class="py-lineno">2865</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2866"></a><tt class="py-lineno">2866</tt> <tt class="py-line"> <tt id="link-2693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2693', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2694', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2867"></a><tt class="py-lineno">2867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2868"></a><tt class="py-lineno">2868</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2695', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2696" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2696', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2697" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2697', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2869"></a><tt class="py-lineno">2869</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2870"></a><tt class="py-lineno">2870</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_incomplete"></a><div id="_ETreeTestCaseBase.test_iterparse_incomplete-def"><a name="L2871"></a><tt class="py-lineno">2871</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_incomplete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_incomplete">test_iterparse_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_incomplete-expanded"><a name="L2872"></a><tt class="py-lineno">2872</tt> <tt class="py-line"> <tt id="link-2698" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2698', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2699', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2700', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2873"></a><tt class="py-lineno">2873</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt> <tt class="py-line"> </tt>
+<a name="L2875"></a><tt class="py-lineno">2875</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2701" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2701', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2877"></a><tt class="py-lineno">2877</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2702', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-2703" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2703', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt id="link-2704" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-2662', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt id="link-2663" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-2663', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2830"></a><tt class="py-lineno">2830</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-<a name="L2831"></a><tt class="py-lineno">2831</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-2664" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2664', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-2704', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt id="link-2705" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-2705', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2879"></a><tt class="py-lineno">2879</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+<a name="L2880"></a><tt class="py-lineno">2880</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-2706" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2706', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2665', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2832"></a><tt class="py-lineno">2832</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_file"></a><div id="_ETreeTestCaseBase.test_iterparse_file-def"><a name="L2833"></a><tt class="py-lineno">2833</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_file-expanded"><a name="L2834"></a><tt class="py-lineno">2834</tt> <tt class="py-line"> <tt id="link-2666" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2666', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2667', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2668', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2669" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2669', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2670" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2670', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.xml"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2836"></a><tt class="py-lineno">2836</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2671" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2671', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2838"></a><tt class="py-lineno">2838</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2839"></a><tt class="py-lineno">2839</tt> <tt class="py-line"> <tt id="link-2672" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2672', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2673" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2673', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2840"></a><tt class="py-lineno">2840</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2841"></a><tt class="py-lineno">2841</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2674" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2674', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2675" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2675', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2842"></a><tt class="py-lineno">2842</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2843"></a><tt class="py-lineno">2843</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_start"></a><div id="_ETreeTestCaseBase.test_iterparse_start-def"><a name="L2844"></a><tt class="py-lineno">2844</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start-expanded"><a name="L2845"></a><tt class="py-lineno">2845</tt> <tt class="py-line"> <tt id="link-2676" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2676', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2677', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2678', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2846"></a><tt class="py-lineno">2846</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2847"></a><tt class="py-lineno">2847</tt> <tt class="py-line"> </tt>
-<a name="L2848"></a><tt class="py-lineno">2848</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2679" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2679', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2849"></a><tt class="py-lineno">2849</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2850"></a><tt class="py-lineno">2850</tt> <tt class="py-line"> <tt id="link-2680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2680', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2681', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2851"></a><tt class="py-lineno">2851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2852"></a><tt class="py-lineno">2852</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2682', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2683" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2683', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2684', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2853"></a><tt class="py-lineno">2853</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2854"></a><tt class="py-lineno">2854</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_start_end"></a><div id="_ETreeTestCaseBase.test_iterparse_start_end-def"><a name="L2855"></a><tt class="py-lineno">2855</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start_end-expanded"><a name="L2856"></a><tt class="py-lineno">2856</tt> <tt class="py-line"> <tt id="link-2685" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2685', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2686" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2686', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2687', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2858"></a><tt class="py-lineno">2858</tt> <tt class="py-line"> </tt>
-<a name="L2859"></a><tt class="py-lineno">2859</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2688" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2688', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2860"></a><tt class="py-lineno">2860</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2861"></a><tt class="py-lineno">2861</tt> <tt class="py-line"> <tt id="link-2689" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2689', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2690', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2862"></a><tt class="py-lineno">2862</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2863"></a><tt class="py-lineno">2863</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2691', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2692', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2693', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2864"></a><tt class="py-lineno">2864</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2694', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2695', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2696" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2696', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2865"></a><tt class="py-lineno">2865</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2866"></a><tt class="py-lineno">2866</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_clear"></a><div id="_ETreeTestCaseBase.test_iterparse_clear-def"><a name="L2867"></a><tt class="py-lineno">2867</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_clear-expanded"><a name="L2868"></a><tt class="py-lineno">2868</tt> <tt class="py-line"> <tt id="link-2697" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2697', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2698', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2699', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2869"></a><tt class="py-lineno">2869</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2870"></a><tt class="py-lineno">2870</tt> <tt class="py-line"> </tt>
-<a name="L2871"></a><tt class="py-lineno">2871</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2700" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2700', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2872"></a><tt class="py-lineno">2872</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L2873"></a><tt class="py-lineno">2873</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree.DocInfo.clear
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2707', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2881"></a><tt class="py-lineno">2881</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_file"></a><div id="_ETreeTestCaseBase.test_iterparse_file-def"><a name="L2882"></a><tt class="py-lineno">2882</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_file-expanded"><a name="L2883"></a><tt class="py-lineno">2883</tt> <tt class="py-line"> <tt id="link-2708" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2708', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2709', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2710', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2884"></a><tt class="py-lineno">2884</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2711" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2711', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2712" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2712', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.xml"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2885"></a><tt class="py-lineno">2885</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt> <tt class="py-line"> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2713', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2887"></a><tt class="py-lineno">2887</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2888"></a><tt class="py-lineno">2888</tt> <tt class="py-line"> <tt id="link-2714" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2714', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2715', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2889"></a><tt class="py-lineno">2889</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2890"></a><tt class="py-lineno">2890</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2716', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2717" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2717', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2891"></a><tt class="py-lineno">2891</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2892"></a><tt class="py-lineno">2892</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_start"></a><div id="_ETreeTestCaseBase.test_iterparse_start-def"><a name="L2893"></a><tt class="py-lineno">2893</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start-expanded"><a name="L2894"></a><tt class="py-lineno">2894</tt> <tt class="py-line"> <tt id="link-2718" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2718', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2719" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2719', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2720', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2895"></a><tt class="py-lineno">2895</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2896"></a><tt class="py-lineno">2896</tt> <tt class="py-line"> </tt>
+<a name="L2897"></a><tt class="py-lineno">2897</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2721" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2721', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2898"></a><tt class="py-lineno">2898</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2899"></a><tt class="py-lineno">2899</tt> <tt class="py-line"> <tt id="link-2722" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2722', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2723', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2900"></a><tt class="py-lineno">2900</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2901"></a><tt class="py-lineno">2901</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2724" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2724', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2725', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2726" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2726', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2902"></a><tt class="py-lineno">2902</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2903"></a><tt class="py-lineno">2903</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_start_end"></a><div id="_ETreeTestCaseBase.test_iterparse_start_end-def"><a name="L2904"></a><tt class="py-lineno">2904</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start_end-expanded"><a name="L2905"></a><tt class="py-lineno">2905</tt> <tt class="py-line"> <tt id="link-2727" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2727', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2728', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2729" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2729', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2907"></a><tt class="py-lineno">2907</tt> <tt class="py-line"> </tt>
+<a name="L2908"></a><tt class="py-lineno">2908</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2730" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2730', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2910"></a><tt class="py-lineno">2910</tt> <tt class="py-line"> <tt id="link-2731" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2731', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2732', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2911"></a><tt class="py-lineno">2911</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2912"></a><tt class="py-lineno">2912</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2733" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2733', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2734', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2735', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2913"></a><tt class="py-lineno">2913</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2736', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2737', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2738" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2738', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2914"></a><tt class="py-lineno">2914</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2915"></a><tt class="py-lineno">2915</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_clear"></a><div id="_ETreeTestCaseBase.test_iterparse_clear-def"><a name="L2916"></a><tt class="py-lineno">2916</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_clear-expanded"><a name="L2917"></a><tt class="py-lineno">2917</tt> <tt class="py-line"> <tt id="link-2739" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2739', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2740" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2740', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2741" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2741', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2919"></a><tt class="py-lineno">2919</tt> <tt class="py-line"> </tt>
+<a name="L2920"></a><tt class="py-lineno">2920</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2742" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2742', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2921"></a><tt class="py-lineno">2921</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L2922"></a><tt class="py-lineno">2922</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree.DocInfo.clear
lxml.etree._Attrib.clear
lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-2701', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt> <tt class="py-line"> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt> <tt class="py-line"> <tt id="link-2702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2702', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2703', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
-<a name="L2877"></a><tt class="py-lineno">2877</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2704', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2878"></a><tt class="py-lineno">2878</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_large"></a><div id="_ETreeTestCaseBase.test_iterparse_large-def"><a name="L2879"></a><tt class="py-lineno">2879</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_large-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_large');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_large-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_large-expanded"><a name="L2880"></a><tt class="py-lineno">2880</tt> <tt class="py-line"> <tt id="link-2705" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2705', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2706" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2706', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2707', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2881"></a><tt class="py-lineno">2881</tt> <tt class="py-line"> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">=</tt> <tt class="py-number">12345</tt> </tt>
-<a name="L2882"></a><tt class="py-lineno">2882</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a>%s</a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">'<b>test</b>'</tt><tt class="py-op">*</tt><tt class="py-name">CHILD_COUNT</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2883"></a><tt class="py-lineno">2883</tt> <tt class="py-line"> </tt>
-<a name="L2884"></a><tt class="py-lineno">2884</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L2885"></a><tt class="py-lineno">2885</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2708', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-2709" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2709', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2889"></a><tt class="py-lineno">2889</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_attrib_ns"></a><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-def"><a name="L2890"></a><tt class="py-lineno">2890</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_attrib_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_attrib_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-expanded"><a name="L2891"></a><tt class="py-lineno">2891</tt> <tt class="py-line"> <tt id="link-2710" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2710', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2711', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2712', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2892"></a><tt class="py-lineno">2892</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns="http://ns1/"><b><c xmlns="http://ns2/"/></b></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2893"></a><tt class="py-lineno">2893</tt> <tt class="py-line"> </tt>
-<a name="L2894"></a><tt class="py-lineno">2894</tt> <tt class="py-line"> <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://testns/}bla'</tt> </tt>
-<a name="L2895"></a><tt class="py-lineno">2895</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L2896"></a><tt class="py-lineno">2896</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2713" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2713', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2897"></a><tt class="py-lineno">2897</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2714', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-<a name="L2899"></a><tt class="py-lineno">2899</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2900"></a><tt class="py-lineno">2900</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-2743', 'clear', 'link-405');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2923"></a><tt class="py-lineno">2923</tt> <tt class="py-line"> </tt>
+<a name="L2924"></a><tt class="py-lineno">2924</tt> <tt class="py-line"> <tt id="link-2744" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2744', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2745', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2925"></a><tt class="py-lineno">2925</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
+<a name="L2926"></a><tt class="py-lineno">2926</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2746" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2746', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2927"></a><tt class="py-lineno">2927</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_large"></a><div id="_ETreeTestCaseBase.test_iterparse_large-def"><a name="L2928"></a><tt class="py-lineno">2928</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_large-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_large');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_large-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_large-expanded"><a name="L2929"></a><tt class="py-lineno">2929</tt> <tt class="py-line"> <tt id="link-2747" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2747', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2748" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2748', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2749" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2749', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2930"></a><tt class="py-lineno">2930</tt> <tt class="py-line"> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">=</tt> <tt class="py-number">12345</tt> </tt>
+<a name="L2931"></a><tt class="py-lineno">2931</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a>%s</a>'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">'<b>test</b>'</tt><tt class="py-op">*</tt><tt class="py-name">CHILD_COUNT</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2932"></a><tt class="py-lineno">2932</tt> <tt class="py-line"> </tt>
+<a name="L2933"></a><tt class="py-lineno">2933</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L2934"></a><tt class="py-lineno">2934</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2750', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2935"></a><tt class="py-lineno">2935</tt> <tt class="py-line"> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-2751" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2751', 'element', 'link-862');">element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+<a name="L2936"></a><tt class="py-lineno">2936</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L2937"></a><tt class="py-lineno">2937</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2938"></a><tt class="py-lineno">2938</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_attrib_ns"></a><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-def"><a name="L2939"></a><tt class="py-lineno">2939</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_attrib_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_attrib_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-expanded"><a name="L2940"></a><tt class="py-lineno">2940</tt> <tt class="py-line"> <tt id="link-2752" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2752', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2753', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2754', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2941"></a><tt class="py-lineno">2941</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns="http://ns1/"><b><c xmlns="http://ns2/"/></b></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2942"></a><tt class="py-lineno">2942</tt> <tt class="py-line"> </tt>
+<a name="L2943"></a><tt class="py-lineno">2943</tt> <tt class="py-line"> <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://testns/}bla'</tt> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L2945"></a><tt class="py-lineno">2945</tt> <tt class="py-line"> <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2755" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2755', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2946"></a><tt class="py-lineno">2946</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L2947"></a><tt class="py-lineno">2947</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-2756" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2756', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+<a name="L2948"></a><tt class="py-lineno">2948</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2949"></a><tt class="py-lineno">2949</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2757" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2715', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{http://ns1/}a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2901"></a><tt class="py-lineno">2901</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2716" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2757', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{http://ns1/}a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2950"></a><tt class="py-lineno">2950</tt> <tt class="py-line"> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2716', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2902"></a><tt class="py-lineno">2902</tt> <tt class="py-line"> </tt>
-<a name="L2903"></a><tt class="py-lineno">2903</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2904"></a><tt class="py-lineno">2904</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2905"></a><tt class="py-lineno">2905</tt> <tt class="py-line"> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2906"></a><tt class="py-lineno">2906</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L2907"></a><tt class="py-lineno">2907</tt> <tt class="py-line"> </tt>
-<a name="L2908"></a><tt class="py-lineno">2908</tt> <tt class="py-line"> <tt id="link-2717" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2717', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2718', 'root', 'link-50');">root</a></tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2910"></a><tt class="py-lineno">2910</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2911"></a><tt class="py-lineno">2911</tt> <tt class="py-line"> <tt id="link-2719" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2719', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-2758', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2951"></a><tt class="py-lineno">2951</tt> <tt class="py-line"> </tt>
+<a name="L2952"></a><tt class="py-lineno">2952</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt> <tt class="py-line"> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2955"></a><tt class="py-lineno">2955</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L2956"></a><tt class="py-lineno">2956</tt> <tt class="py-line"> </tt>
+<a name="L2957"></a><tt class="py-lineno">2957</tt> <tt class="py-line"> <tt id="link-2759" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2759', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2760', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2958"></a><tt class="py-lineno">2958</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2959"></a><tt class="py-lineno">2959</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2960"></a><tt class="py-lineno">2960</tt> <tt class="py-line"> <tt id="link-2761" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2761', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2762" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2720', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2912"></a><tt class="py-lineno">2912</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2913"></a><tt class="py-lineno">2913</tt> <tt class="py-line"> <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2914"></a><tt class="py-lineno">2914</tt> <tt class="py-line"> <tt id="link-2721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2721', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2762', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2961"></a><tt class="py-lineno">2961</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt> <tt class="py-line"> <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt> <tt class="py-line"> <tt id="link-2763" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2763', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2722', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2915"></a><tt class="py-lineno">2915</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_getiterator"></a><div id="_ETreeTestCaseBase.test_iterparse_getiterator-def"><a name="L2916"></a><tt class="py-lineno">2916</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-expanded"><a name="L2917"></a><tt class="py-lineno">2917</tt> <tt class="py-line"> <tt id="link-2723" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2723', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2764', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2964"></a><tt class="py-lineno">2964</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_getiterator"></a><div id="_ETreeTestCaseBase.test_iterparse_getiterator-def"><a name="L2965"></a><tt class="py-lineno">2965</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_getiterator');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-expanded"><a name="L2966"></a><tt class="py-lineno">2966</tt> <tt class="py-line"> <tt id="link-2765" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2765', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2724', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2725', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2918"></a><tt class="py-lineno">2918</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d/></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2919"></a><tt class="py-lineno">2919</tt> <tt class="py-line"> </tt>
-<a name="L2920"></a><tt class="py-lineno">2920</tt> <tt class="py-line"> <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L2921"></a><tt class="py-lineno">2921</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-2726" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2726', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2922"></a><tt class="py-lineno">2922</tt> <tt class="py-line"> <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2727', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2728', 'getiterator', 'link-1833');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2923"></a><tt class="py-lineno">2923</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2924"></a><tt class="py-lineno">2924</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2925"></a><tt class="py-lineno">2925</tt> <tt class="py-line"> <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2926"></a><tt class="py-lineno">2926</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_move_elements"></a><div id="_ETreeTestCaseBase.test_iterparse_move_elements-def"><a name="L2927"></a><tt class="py-lineno">2927</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_move_elements-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_move_elements');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-expanded"><a name="L2928"></a><tt class="py-lineno">2928</tt> <tt class="py-line"> <tt id="link-2729" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2729', 'iterparse', 'link-2646');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2730" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2766', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2767" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2767', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2967"></a><tt class="py-lineno">2967</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d/></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2968"></a><tt class="py-lineno">2968</tt> <tt class="py-line"> </tt>
+<a name="L2969"></a><tt class="py-lineno">2969</tt> <tt class="py-line"> <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L2970"></a><tt class="py-lineno">2970</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-2768" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2768', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt> <tt class="py-line"> <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2769', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2770" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2770', 'getiterator', 'link-1875');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2974"></a><tt class="py-lineno">2974</tt> <tt class="py-line"> <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2975"></a><tt class="py-lineno">2975</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_move_elements"></a><div id="_ETreeTestCaseBase.test_iterparse_move_elements-def"><a name="L2976"></a><tt class="py-lineno">2976</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_move_elements-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_move_elements');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-expanded"><a name="L2977"></a><tt class="py-lineno">2977</tt> <tt class="py-line"> <tt id="link-2771" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2771', 'iterparse', 'link-2688');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2772" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2730', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2731" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2731', 'iterparse', 'link-2646');">iterparse</a></tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d/></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt> <tt class="py-line"> </tt>
-<a name="L2931"></a><tt class="py-lineno">2931</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt id="link-2732" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2772', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2773', 'iterparse', 'link-2688');">iterparse</a></tt> </tt>
+<a name="L2978"></a><tt class="py-lineno">2978</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b><d/></b><c/></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2979"></a><tt class="py-lineno">2979</tt> <tt class="py-line"> </tt>
+<a name="L2980"></a><tt class="py-lineno">2980</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt id="link-2774" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2732', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2733" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2733', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
-<a name="L2932"></a><tt class="py-lineno">2932</tt> <tt class="py-line"> </tt>
-<a name="L2933"></a><tt class="py-lineno">2933</tt> <tt class="py-line"> <tt id="link-2734" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2734', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2774', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2775', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt> <tt class="py-line"> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt> <tt class="py-line"> <tt id="link-2776" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2776', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2777" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2735', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2736" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2777', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2778" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2736', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new_root'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2934"></a><tt class="py-lineno">2934</tt> <tt class="py-line"> <tt id="link-2737" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2737', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2935"></a><tt class="py-lineno">2935</tt> <tt class="py-line"> </tt>
-<a name="L2936"></a><tt class="py-lineno">2936</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2937"></a><tt class="py-lineno">2937</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2938"></a><tt class="py-lineno">2938</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2738" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2778', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new_root'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2983"></a><tt class="py-lineno">2983</tt> <tt class="py-line"> <tt id="link-2779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2779', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2984"></a><tt class="py-lineno">2984</tt> <tt class="py-line"> </tt>
+<a name="L2985"></a><tt class="py-lineno">2985</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2986"></a><tt class="py-lineno">2986</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2987"></a><tt class="py-lineno">2987</tt> <tt class="py-line"> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2780" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2738', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2739" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2739', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2939"></a><tt class="py-lineno">2939</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_cdata"></a><div id="_ETreeTestCaseBase.test_iterparse_cdata-def"><a name="L2940"></a><tt class="py-lineno">2940</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_cdata');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_cdata-expanded"><a name="L2941"></a><tt class="py-lineno">2941</tt> <tt class="py-line"> <tt id="link-2740" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2740', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2741" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2780', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2781', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2988"></a><tt class="py-lineno">2988</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_cdata"></a><div id="_ETreeTestCaseBase.test_iterparse_cdata-def"><a name="L2989"></a><tt class="py-lineno">2989</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_cdata');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_cdata-expanded"><a name="L2990"></a><tt class="py-lineno">2990</tt> <tt class="py-line"> <tt id="link-2782" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2782', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2783" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2741', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2742', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L2942"></a><tt class="py-lineno">2942</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<root><![CDATA[test]]></root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2943"></a><tt class="py-lineno">2943</tt> <tt class="py-line"> <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2783', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2784', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L2991"></a><tt class="py-lineno">2991</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<root><![CDATA[test]]></root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2992"></a><tt class="py-lineno">2992</tt> <tt class="py-line"> <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2743', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.iterparse
-lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2744', 'iterparse', 'link-2646');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2745" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2785', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2786" class="py-name"><a title="lxml.etree.iterparse
+lxml.tests.selftest.iterparse" class="py-name" href="#" onclick="return doclink('link-2786', 'iterparse', 'link-2688');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2993"></a><tt class="py-lineno">2993</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2745', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2945"></a><tt class="py-lineno">2945</tt> <tt class="py-line"> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2746', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>test</root>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2948"></a><tt class="py-lineno">2948</tt> <tt class="py-line"> <tt id="link-2747" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2747', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-2748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2748', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2949"></a><tt class="py-lineno">2949</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file"></a><div id="_ETreeTestCaseBase.test_parse_file-def"><a name="L2950"></a><tt class="py-lineno">2950</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file-expanded"><a name="L2951"></a><tt class="py-lineno">2951</tt> <tt class="py-line"> <tt id="link-2749" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2787', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2994"></a><tt class="py-lineno">2994</tt> <tt class="py-line"> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L2996"></a><tt class="py-lineno">2996</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2788" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2788', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>test</root>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2997"></a><tt class="py-lineno">2997</tt> <tt class="py-line"> <tt id="link-2789" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2789', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-2790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2790', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2998"></a><tt class="py-lineno">2998</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file"></a><div id="_ETreeTestCaseBase.test_parse_file-def"><a name="L2999"></a><tt class="py-lineno">2999</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file-expanded"><a name="L3000"></a><tt class="py-lineno">3000</tt> <tt class="py-line"> <tt id="link-2791" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2749', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2791', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2750', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2751" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2792', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2751', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2952"></a><tt class="py-lineno">2952</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
-<a name="L2953"></a><tt class="py-lineno">2953</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2752" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2793', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3001"></a><tt class="py-lineno">3001</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
+<a name="L3002"></a><tt class="py-lineno">3002</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2794" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2752', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2753" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2753', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2954"></a><tt class="py-lineno">2954</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2754', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt> <tt class="py-line"> <tt id="link-2755" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2755', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2756" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2756', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2957"></a><tt class="py-lineno">2957</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_nonexistent"></a><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-def"><a name="L2958"></a><tt class="py-lineno">2958</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_nonexistent-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_nonexistent');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-expanded"><a name="L2959"></a><tt class="py-lineno">2959</tt> <tt class="py-line"> <tt id="link-2757" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2794', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2795" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2795', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3003"></a><tt class="py-lineno">3003</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2796" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2796', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3004"></a><tt class="py-lineno">3004</tt> <tt class="py-line"> <tt id="link-2797" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2797', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3005"></a><tt class="py-lineno">3005</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2798', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3006"></a><tt class="py-lineno">3006</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_nonexistent"></a><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-def"><a name="L3007"></a><tt class="py-lineno">3007</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_nonexistent-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_nonexistent');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-expanded"><a name="L3008"></a><tt class="py-lineno">3008</tt> <tt class="py-line"> <tt id="link-2799" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2757', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2799', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2758', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2759" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2800', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2801" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2759', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2960"></a><tt class="py-lineno">2960</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt id="link-2760" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2801', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3009"></a><tt class="py-lineno">3009</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt id="link-2802" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2760', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> <tt id="link-2761" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2761', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'notthere.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2961"></a><tt class="py-lineno">2961</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error_none"></a><div id="_ETreeTestCaseBase.test_parse_error_none-def"><a name="L2962"></a><tt class="py-lineno">2962</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_none-expanded"><a name="L2963"></a><tt class="py-lineno">2963</tt> <tt class="py-line"> <tt id="link-2762" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2802', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> <tt id="link-2803" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2803', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'notthere.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3010"></a><tt class="py-lineno">3010</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error_none"></a><div id="_ETreeTestCaseBase.test_parse_error_none-def"><a name="L3011"></a><tt class="py-lineno">3011</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_none-expanded"><a name="L3012"></a><tt class="py-lineno">3012</tt> <tt class="py-line"> <tt id="link-2804" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2762', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2763" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2804', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2805" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2763', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2805', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2806" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2764', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-2765" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2806', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3013"></a><tt class="py-lineno">3013</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-2807" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2765', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2965"></a><tt class="py-lineno">2965</tt> <tt class="py-line"> </tt>
-<a name="L2966"></a><tt class="py-lineno">2966</tt> <tt class="py-line"> <tt id="link-2766" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2766', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error"></a><div id="_ETreeTestCaseBase.test_parse_error-def"><a name="L2967"></a><tt class="py-lineno">2967</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error-expanded"><a name="L2968"></a><tt class="py-lineno">2968</tt> <tt class="py-line"> <tt class="py-comment"># ET < 1.3 raises ExpatError</tt> </tt>
-<a name="L2969"></a><tt class="py-lineno">2969</tt> <tt class="py-line"> <tt id="link-2767" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2807', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3014"></a><tt class="py-lineno">3014</tt> <tt class="py-line"> </tt>
+<a name="L3015"></a><tt class="py-lineno">3015</tt> <tt class="py-line"> <tt id="link-2808" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2808', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error"></a><div id="_ETreeTestCaseBase.test_parse_error-def"><a name="L3016"></a><tt class="py-lineno">3016</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error-expanded"><a name="L3017"></a><tt class="py-lineno">3017</tt> <tt class="py-line"> <tt class="py-comment"># ET < 1.3 raises ExpatError</tt> </tt>
+<a name="L3018"></a><tt class="py-lineno">3018</tt> <tt class="py-line"> <tt id="link-2809" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2767', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2768" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2809', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2810" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2768', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2810', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2769', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2970"></a><tt class="py-lineno">2970</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></c></b></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2971"></a><tt class="py-lineno">2971</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2770" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2811', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3019"></a><tt class="py-lineno">3019</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></c></b></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3020"></a><tt class="py-lineno">3020</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2812" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2770', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2972"></a><tt class="py-lineno">2972</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name" targets="Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#close"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2812', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name" targets="Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#close"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2771', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2973"></a><tt class="py-lineno">2973</tt> <tt class="py-line"> </tt>
-<a name="L2974"></a><tt class="py-lineno">2974</tt> <tt class="py-line"> <tt id="link-2772" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2772', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error_from_file'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error_from_file"></a><div id="_ETreeTestCaseBase.test_parse_error_from_file-def"><a name="L2975"></a><tt class="py-lineno">2975</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_from_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_from_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error_from_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_from_file-expanded"><a name="L2976"></a><tt class="py-lineno">2976</tt> <tt class="py-line"> <tt id="link-2773" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2813', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3022"></a><tt class="py-lineno">3022</tt> <tt class="py-line"> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt> <tt class="py-line"> <tt id="link-2814" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2814', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error_from_file'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error_from_file"></a><div id="_ETreeTestCaseBase.test_parse_error_from_file-def"><a name="L3024"></a><tt class="py-lineno">3024</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_from_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_from_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error_from_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_from_file-expanded"><a name="L3025"></a><tt class="py-lineno">3025</tt> <tt class="py-line"> <tt id="link-2815" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2773', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2774" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2815', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2774', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2775', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2977"></a><tt class="py-lineno">2977</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
-<a name="L2978"></a><tt class="py-lineno">2978</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2776" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2776', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2979"></a><tt class="py-lineno">2979</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2777" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2817', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3026"></a><tt class="py-lineno">3026</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
+<a name="L3027"></a><tt class="py-lineno">3027</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2818', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3028"></a><tt class="py-lineno">3028</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2819" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2777', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2980"></a><tt class="py-lineno">2980</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2778" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2819', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3029"></a><tt class="py-lineno">3029</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2820" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2778', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2981"></a><tt class="py-lineno">2981</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_object"></a><div id="_ETreeTestCaseBase.test_parse_file_object-def"><a name="L2982"></a><tt class="py-lineno">2982</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object-expanded"><a name="L2983"></a><tt class="py-lineno">2983</tt> <tt class="py-line"> <tt id="link-2779" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2820', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3030"></a><tt class="py-lineno">3030</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_object"></a><div id="_ETreeTestCaseBase.test_parse_file_object-def"><a name="L3031"></a><tt class="py-lineno">3031</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object-expanded"><a name="L3032"></a><tt class="py-lineno">3032</tt> <tt class="py-line"> <tt id="link-2821" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2779', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2780" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2821', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2822" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2780', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2781" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2822', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2781', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2984"></a><tt class="py-lineno">2984</tt> <tt class="py-line"> <tt class="py-comment"># from file object</tt> </tt>
-<a name="L2985"></a><tt class="py-lineno">2985</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2782" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2782', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2986"></a><tt class="py-lineno">2986</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2783" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2823', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3033"></a><tt class="py-lineno">3033</tt> <tt class="py-line"> <tt class="py-comment"># from file object</tt> </tt>
+<a name="L3034"></a><tt class="py-lineno">3034</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2824" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2824', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3035"></a><tt class="py-lineno">3035</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2825" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2783', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2987"></a><tt class="py-lineno">2987</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2825', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3036"></a><tt class="py-lineno">3036</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2826" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2784', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2988"></a><tt class="py-lineno">2988</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2785', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2989"></a><tt class="py-lineno">2989</tt> <tt class="py-line"> <tt id="link-2786" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2786', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2990"></a><tt class="py-lineno">2990</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2787', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2991"></a><tt class="py-lineno">2991</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_stringio"></a><div id="_ETreeTestCaseBase.test_parse_stringio-def"><a name="L2992"></a><tt class="py-lineno">2992</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_stringio');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_stringio-expanded"><a name="L2993"></a><tt class="py-lineno">2993</tt> <tt class="py-line"> <tt id="link-2788" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2826', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3037"></a><tt class="py-lineno">3037</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2827" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2827', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3038"></a><tt class="py-lineno">3038</tt> <tt class="py-line"> <tt id="link-2828" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2828', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3039"></a><tt class="py-lineno">3039</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2829', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3040"></a><tt class="py-lineno">3040</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_stringio"></a><div id="_ETreeTestCaseBase.test_parse_stringio-def"><a name="L3041"></a><tt class="py-lineno">3041</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_stringio');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_stringio-expanded"><a name="L3042"></a><tt class="py-lineno">3042</tt> <tt class="py-line"> <tt id="link-2830" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2788', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2789" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2830', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2831" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2789', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2790" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2831', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2832" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2790', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L2994"></a><tt class="py-lineno">2994</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2791" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2832', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3043"></a><tt class="py-lineno">3043</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3044"></a><tt class="py-lineno">3044</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2833" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2791', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2833', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3045"></a><tt class="py-lineno">3045</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2792', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2997"></a><tt class="py-lineno">2997</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2793', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2998"></a><tt class="py-lineno">2998</tt> <tt class="py-line"> <tt id="link-2794" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2794', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2999"></a><tt class="py-lineno">2999</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2795" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2795', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3000"></a><tt class="py-lineno">3000</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-</div><a name="L3001"></a><tt class="py-lineno">3001</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_cdata"></a><div id="_ETreeTestCaseBase.test_parse_cdata-def"><a name="L3002"></a><tt class="py-lineno">3002</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_cdata');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_cdata-expanded"><a name="L3003"></a><tt class="py-lineno">3003</tt> <tt class="py-line"> <tt id="link-2796" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2796', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2834', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3046"></a><tt class="py-lineno">3046</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2835" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2835', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3047"></a><tt class="py-lineno">3047</tt> <tt class="py-line"> <tt id="link-2836" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2836', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b></b></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3048"></a><tt class="py-lineno">3048</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2837" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2837', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3049"></a><tt class="py-lineno">3049</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
+</div><a name="L3050"></a><tt class="py-lineno">3050</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_cdata"></a><div id="_ETreeTestCaseBase.test_parse_cdata-def"><a name="L3051"></a><tt class="py-lineno">3051</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_cdata');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_cdata-expanded"><a name="L3052"></a><tt class="py-lineno">3052</tt> <tt class="py-line"> <tt id="link-2838" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2838', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2839" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2797', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2798', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3004"></a><tt class="py-lineno">3004</tt> <tt class="py-line"> <tt id="link-2799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2799', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2839', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2840" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2840', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3053"></a><tt class="py-lineno">3053</tt> <tt class="py-line"> <tt id="link-2841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2841', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2800', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2801" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2842', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2843" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2801', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2802" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2802', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><![CDATA[test]]></root>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3005"></a><tt class="py-lineno">3005</tt> <tt class="py-line"> </tt>
-<a name="L3006"></a><tt class="py-lineno">3006</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2803" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2803', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2843', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2844" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2844', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><![CDATA[test]]></root>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3054"></a><tt class="py-lineno">3054</tt> <tt class="py-line"> </tt>
+<a name="L3055"></a><tt class="py-lineno">3055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2845', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2846" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2804', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3007"></a><tt class="py-lineno">3007</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2805" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2805', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>test</root>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3008"></a><tt class="py-lineno">3008</tt> <tt class="py-line"> <tt id="link-2806" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2806', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2807" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2807', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3009"></a><tt class="py-lineno">3009</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_with_encoding"></a><div id="_ETreeTestCaseBase.test_parse_with_encoding-def"><a name="L3010"></a><tt class="py-lineno">3010</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_with_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_with_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_with_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_with_encoding-expanded"><a name="L3011"></a><tt class="py-lineno">3011</tt> <tt class="py-line"> <tt class="py-comment"># this can fail in libxml2 <= 2.6.22</tt> </tt>
-<a name="L3012"></a><tt class="py-lineno">3012</tt> <tt class="py-line"> <tt id="link-2808" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2846', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3056"></a><tt class="py-lineno">3056</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2847" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2847', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>test</root>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3057"></a><tt class="py-lineno">3057</tt> <tt class="py-line"> <tt id="link-2848" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2848', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2849', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3058"></a><tt class="py-lineno">3058</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_with_encoding"></a><div id="_ETreeTestCaseBase.test_parse_with_encoding-def"><a name="L3059"></a><tt class="py-lineno">3059</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_with_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_with_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_with_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_with_encoding-expanded"><a name="L3060"></a><tt class="py-lineno">3060</tt> <tt class="py-line"> <tt class="py-comment"># this can fail in libxml2 <= 2.6.22</tt> </tt>
+<a name="L3061"></a><tt class="py-lineno">3061</tt> <tt class="py-line"> <tt id="link-2850" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2808', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2809" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2850', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2809', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2810" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2851', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2852" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2810', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L3013"></a><tt class="py-lineno">3013</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2811" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2852', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3062"></a><tt class="py-lineno">3062</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2853" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2811', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="ascii"?><html/>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3014"></a><tt class="py-lineno">3014</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2812" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2812', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-2813" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2813', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3015"></a><tt class="py-lineno">3015</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2814" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2814', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3016"></a><tt class="py-lineno">3016</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding"></a><div id="_ETreeTestCaseBase.test_encoding-def"><a name="L3017"></a><tt class="py-lineno">3017</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding-expanded"><a name="L3018"></a><tt class="py-lineno">3018</tt> <tt class="py-line"> <tt id="link-2815" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2853', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="ascii"?><html/>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3063"></a><tt class="py-lineno">3063</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2854" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2854', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-2855" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2855', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<html></html>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3064"></a><tt class="py-lineno">3064</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2856" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2856', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3065"></a><tt class="py-lineno">3065</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding"></a><div id="_ETreeTestCaseBase.test_encoding-def"><a name="L3066"></a><tt class="py-lineno">3066</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding-expanded"><a name="L3067"></a><tt class="py-lineno">3067</tt> <tt class="py-line"> <tt id="link-2857" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2815', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2857', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2858" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2858', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2817', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3019"></a><tt class="py-lineno">3019</tt> <tt class="py-line"> </tt>
-<a name="L3020"></a><tt class="py-lineno">3020</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2818" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2859', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3068"></a><tt class="py-lineno">3068</tt> <tt class="py-line"> </tt>
+<a name="L3069"></a><tt class="py-lineno">3069</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2860" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2818', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3021"></a><tt class="py-lineno">3021</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2860', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3070"></a><tt class="py-lineno">3070</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2819', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2820" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2820', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3022"></a><tt class="py-lineno">3022</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2821', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3023"></a><tt class="py-lineno">3023</tt> <tt class="py-line"> <tt id="link-2822" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2822', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3024"></a><tt class="py-lineno">3024</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3025"></a><tt class="py-lineno">3025</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_exact"></a><div id="_ETreeTestCaseBase.test_encoding_exact-def"><a name="L3026"></a><tt class="py-lineno">3026</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_exact');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_exact-expanded"><a name="L3027"></a><tt class="py-lineno">3027</tt> <tt class="py-line"> <tt id="link-2823" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2861', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2862" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2862', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3071"></a><tt class="py-lineno">3071</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2863" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2863', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3072"></a><tt class="py-lineno">3072</tt> <tt class="py-line"> <tt id="link-2864" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2864', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3073"></a><tt class="py-lineno">3073</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3074"></a><tt class="py-lineno">3074</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_exact"></a><div id="_ETreeTestCaseBase.test_encoding_exact-def"><a name="L3075"></a><tt class="py-lineno">3075</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_exact');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_exact-expanded"><a name="L3076"></a><tt class="py-lineno">3076</tt> <tt class="py-line"> <tt id="link-2865" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2823', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2824" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2865', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2866" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2824', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2825" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2866', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2867" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2825', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3028"></a><tt class="py-lineno">3028</tt> <tt class="py-line"> <tt id="link-2826" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2867', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt> <tt class="py-line"> <tt id="link-2868" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2826', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2827" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2868', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2869" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2827', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2869', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2828', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3029"></a><tt class="py-lineno">3029</tt> <tt class="py-line"> </tt>
-<a name="L3030"></a><tt class="py-lineno">3030</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2829" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2870', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3078"></a><tt class="py-lineno">3078</tt> <tt class="py-line"> </tt>
+<a name="L3079"></a><tt class="py-lineno">3079</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2871" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2829', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3031"></a><tt class="py-lineno">3031</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2830" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2871', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3080"></a><tt class="py-lineno">3080</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2830', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2831" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2831', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3032"></a><tt class="py-lineno">3032</tt> <tt class="py-line"> </tt>
-<a name="L3033"></a><tt class="py-lineno">3033</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3034"></a><tt class="py-lineno">3034</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2832" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2872', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2873" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2873', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3081"></a><tt class="py-lineno">3081</tt> <tt class="py-line"> </tt>
+<a name="L3082"></a><tt class="py-lineno">3082</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3083"></a><tt class="py-lineno">3083</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2874" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2832', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2833" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2833', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2834', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2835" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding,Function lxml.tests.selftest.encoding()=lxml.tests.selftest-module.html#encoding,Function lxml.tests.selftest2.encoding()=lxml.tests.selftest2-module.html#encoding"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2874', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2875" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2875', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3084"></a><tt class="py-lineno">3084</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2876', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2877" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding,Function lxml.tests.selftest.encoding()=lxml.tests.selftest-module.html#encoding,Function lxml.tests.selftest2.encoding()=lxml.tests.selftest2-module.html#encoding"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2835', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2836" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2836', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3037"></a><tt class="py-lineno">3037</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2837" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2837', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2838" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2838', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2839" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2839', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3038"></a><tt class="py-lineno">3038</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_encoding-def"><a name="L3039"></a><tt class="py-lineno">3039</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_encoding-expanded"><a name="L3040"></a><tt class="py-lineno">3040</tt> <tt class="py-line"> <tt id="link-2840" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2877', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3085"></a><tt class="py-lineno">3085</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2878" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2878', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3086"></a><tt class="py-lineno">3086</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2879" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2879', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2880" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2880', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2881" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2881', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3087"></a><tt class="py-lineno">3087</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_encoding-def"><a name="L3088"></a><tt class="py-lineno">3088</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_encoding-expanded"><a name="L3089"></a><tt class="py-lineno">3089</tt> <tt class="py-line"> <tt id="link-2882" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2840', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2841" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2882', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2883" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2841', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2883', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2884" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2842', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L3041"></a><tt class="py-lineno">3041</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
-<a name="L3042"></a><tt class="py-lineno">3042</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2843" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2884', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3090"></a><tt class="py-lineno">3090</tt> <tt class="py-line"> <tt class="py-comment"># from file</tt> </tt>
+<a name="L3091"></a><tt class="py-lineno">3091</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2885" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2843', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2844" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2844', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3043"></a><tt class="py-lineno">3043</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2845', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3044"></a><tt class="py-lineno">3044</tt> <tt class="py-line"> <tt id="link-2846" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2846', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3045"></a><tt class="py-lineno">3045</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2847" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2847', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3046"></a><tt class="py-lineno">3046</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_object_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-def"><a name="L3047"></a><tt class="py-lineno">3047</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-expanded"><a name="L3048"></a><tt class="py-lineno">3048</tt> <tt class="py-line"> <tt id="link-2848" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2885', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2886" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2886', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3092"></a><tt class="py-lineno">3092</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2887', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3093"></a><tt class="py-lineno">3093</tt> <tt class="py-line"> <tt id="link-2888" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2888', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3094"></a><tt class="py-lineno">3094</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2889', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3095"></a><tt class="py-lineno">3095</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_object_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-def"><a name="L3096"></a><tt class="py-lineno">3096</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-expanded"><a name="L3097"></a><tt class="py-lineno">3097</tt> <tt class="py-line"> <tt id="link-2890" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2848', 'parse', 'link-2473');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2849" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2890', 'parse', 'link-2515');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2849', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2850" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2891', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2892" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2850', 'parse', 'link-2473');">parse</a></tt> </tt>
-<a name="L3049"></a><tt class="py-lineno">3049</tt> <tt class="py-line"> <tt class="py-comment"># from file object</tt> </tt>
-<a name="L3050"></a><tt class="py-lineno">3050</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2851" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2851', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3051"></a><tt class="py-lineno">3051</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2852" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2892', 'parse', 'link-2515');">parse</a></tt> </tt>
+<a name="L3098"></a><tt class="py-lineno">3098</tt> <tt class="py-line"> <tt class="py-comment"># from file object</tt> </tt>
+<a name="L3099"></a><tt class="py-lineno">3099</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2893" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2893', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3100"></a><tt class="py-lineno">3100</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2894" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2852', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3052"></a><tt class="py-lineno">3052</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2894', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3101"></a><tt class="py-lineno">3101</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2895" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2853', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3053"></a><tt class="py-lineno">3053</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2854" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2854', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</tt> <tt class="py-line"> <tt id="link-2855" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2855', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3055"></a><tt class="py-lineno">3055</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2856" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2856', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3056"></a><tt class="py-lineno">3056</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_latin1"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-def"><a name="L3057"></a><tt class="py-lineno">3057</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_latin1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_latin1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-expanded"><a name="L3058"></a><tt class="py-lineno">3058</tt> <tt class="py-line"> <tt id="link-2857" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-2895', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3102"></a><tt class="py-lineno">3102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2896" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2896', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3103"></a><tt class="py-lineno">3103</tt> <tt class="py-line"> <tt id="link-2897" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2897', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3104"></a><tt class="py-lineno">3104</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2898', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3105"></a><tt class="py-lineno">3105</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_latin1"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-def"><a name="L3106"></a><tt class="py-lineno">3106</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_latin1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_latin1');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-expanded"><a name="L3107"></a><tt class="py-lineno">3107</tt> <tt class="py-line"> <tt id="link-2899" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2857', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2858" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2899', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2900" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2858', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2900', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2901" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2859', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3059"></a><tt class="py-lineno">3059</tt> <tt class="py-line"> <tt id="link-2860" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2901', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3108"></a><tt class="py-lineno">3108</tt> <tt class="py-line"> <tt id="link-2902" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2860', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2902', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2903" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2861', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2862" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2903', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2904" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2862', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3060"></a><tt class="py-lineno">3060</tt> <tt class="py-line"> </tt>
-<a name="L3061"></a><tt class="py-lineno">3061</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2863" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2904', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3109"></a><tt class="py-lineno">3109</tt> <tt class="py-line"> </tt>
+<a name="L3110"></a><tt class="py-lineno">3110</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2905" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2863', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3062"></a><tt class="py-lineno">3062</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2864" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2905', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3111"></a><tt class="py-lineno">3111</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2906" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2864', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2865" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2865', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3063"></a><tt class="py-lineno">3063</tt> <tt class="py-line"> </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3065"></a><tt class="py-lineno">3065</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2866" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2906', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2907" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2907', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3112"></a><tt class="py-lineno">3112</tt> <tt class="py-line"> </tt>
+<a name="L3113"></a><tt class="py-lineno">3113</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3114"></a><tt class="py-lineno">3114</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2908" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2866', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2867" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2867', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3066"></a><tt class="py-lineno">3066</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2868', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2869" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2908', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2909" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2909', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2910', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2911" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2869', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3067"></a><tt class="py-lineno">3067</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3068"></a><tt class="py-lineno">3068</tt> <tt class="py-line"> <tt class="py-name">declaration</tt> <tt class="py-op">=</tt> <tt id="link-2870" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2870', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<?xml version=\'1.0\' encoding=\'iso-8859-1\'?>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3069"></a><tt class="py-lineno">3069</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2871" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration" class="py-name" href="#" onclick="return doclink('link-2871', 'assertEncodingDeclaration', 'link-2871');">assertEncodingDeclaration</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-2872" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2872', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3070"></a><tt class="py-lineno">3070</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-2873" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2873', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'?>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2874" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2874', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2875" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2875', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2876" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2876', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3071"></a><tt class="py-lineno">3071</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2877" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2877', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3072"></a><tt class="py-lineno">3072</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3073"></a><tt class="py-lineno">3073</tt> <tt class="py-line"> </tt>
-<a name="L3074"></a><tt class="py-lineno">3074</tt> <tt class="py-line"> <tt id="link-2878" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2878', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_explicit'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-def"><a name="L3075"></a><tt class="py-lineno">3075</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_explicit');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-expanded"><a name="L3076"></a><tt class="py-lineno">3076</tt> <tt class="py-line"> <tt id="link-2879" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2911', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3116"></a><tt class="py-lineno">3116</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3117"></a><tt class="py-lineno">3117</tt> <tt class="py-line"> <tt class="py-name">declaration</tt> <tt class="py-op">=</tt> <tt id="link-2912" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2912', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"<?xml version=\'1.0\' encoding=\'iso-8859-1\'?>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3118"></a><tt class="py-lineno">3118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration" class="py-name" href="#" onclick="return doclink('link-2913', 'assertEncodingDeclaration', 'link-2913');">assertEncodingDeclaration</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-2914" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2914', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-2915" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2915', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'?>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2916', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2917', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2918" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2918', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3120"></a><tt class="py-lineno">3120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2919" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2919', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3121"></a><tt class="py-lineno">3121</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3122"></a><tt class="py-lineno">3122</tt> <tt class="py-line"> </tt>
+<a name="L3123"></a><tt class="py-lineno">3123</tt> <tt class="py-line"> <tt id="link-2920" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2920', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_explicit'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-def"><a name="L3124"></a><tt class="py-lineno">3124</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_explicit');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-expanded"><a name="L3125"></a><tt class="py-lineno">3125</tt> <tt class="py-line"> <tt id="link-2921" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2879', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2921', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2880', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
-<a name="L3077"></a><tt class="py-lineno">3077</tt> <tt class="py-line"> </tt>
-<a name="L3078"></a><tt class="py-lineno">3078</tt> <tt class="py-line"> <tt id="link-2881" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2922', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
+<a name="L3126"></a><tt class="py-lineno">3126</tt> <tt class="py-line"> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt> <tt class="py-line"> <tt id="link-2923" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2881', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2882" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2882', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3079"></a><tt class="py-lineno">3079</tt> <tt class="py-line"> <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2883" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2883', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>%s</a>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt id="link-2884" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2923', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2924" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2924', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</tt> <tt class="py-line"> <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2925" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2925', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>%s</a>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt id="link-2926" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2884', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3080"></a><tt class="py-lineno">3080</tt> <tt class="py-line"> </tt>
-<a name="L3081"></a><tt class="py-lineno">3081</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2885" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2926', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3129"></a><tt class="py-lineno">3129</tt> <tt class="py-line"> </tt>
+<a name="L3130"></a><tt class="py-lineno">3130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2885', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2886" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2886', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2927', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2928', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2929" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2887', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2888" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2929', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2888', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3083"></a><tt class="py-lineno">3083</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3084"></a><tt class="py-lineno">3084</tt> <tt class="py-line"> </tt>
-<a name="L3085"></a><tt class="py-lineno">3085</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2930', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3132"></a><tt class="py-lineno">3132</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3133"></a><tt class="py-lineno">3133</tt> <tt class="py-line"> </tt>
+<a name="L3134"></a><tt class="py-lineno">3134</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2931" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2889', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2890" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2931', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2890', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3086"></a><tt class="py-lineno">3086</tt> <tt class="py-line"> <tt id="link-2891" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2932', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3135"></a><tt class="py-lineno">3135</tt> <tt class="py-line"> <tt id="link-2933" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2891', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2892" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2933', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2934" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2892', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3087"></a><tt class="py-lineno">3087</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2893" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2893', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3088"></a><tt class="py-lineno">3088</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2934', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3136"></a><tt class="py-lineno">3136</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2935" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2935', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3137"></a><tt class="py-lineno">3137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2936" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2894', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2895" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2936', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2937" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2895', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3089"></a><tt class="py-lineno">3089</tt> <tt class="py-line"> </tt>
-<a name="L3090"></a><tt class="py-lineno">3090</tt> <tt class="py-line"> <tt id="link-2896" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2896', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_override"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-def"><a name="L3091"></a><tt class="py-lineno">3091</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_override');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-expanded"><a name="L3092"></a><tt class="py-lineno">3092</tt> <tt class="py-line"> <tt id="link-2897" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2937', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3138"></a><tt class="py-lineno">3138</tt> <tt class="py-line"> </tt>
+<a name="L3139"></a><tt class="py-lineno">3139</tt> <tt class="py-line"> <tt id="link-2938" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2938', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_override"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-def"><a name="L3140"></a><tt class="py-lineno">3140</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_override');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-expanded"><a name="L3141"></a><tt class="py-lineno">3141</tt> <tt class="py-line"> <tt id="link-2939" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2897', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2898" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2939', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2898', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
-<a name="L3093"></a><tt class="py-lineno">3093</tt> <tt class="py-line"> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</tt> <tt class="py-line"> <tt id="link-2899" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2940', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt> <tt class="py-line"> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</tt> <tt class="py-line"> <tt id="link-2941" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2899', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2900" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2900', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3095"></a><tt class="py-lineno">3095</tt> <tt class="py-line"> <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt id="link-2901" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2901', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"<?xml version='1.0' encoding='UTF-8'?>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3096"></a><tt class="py-lineno">3096</tt> <tt class="py-line"> <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2902" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2902', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s<a>%s</a>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-2903" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2941', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2942" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2942', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3144"></a><tt class="py-lineno">3144</tt> <tt class="py-line"> <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt id="link-2943" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2943', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"<?xml version='1.0' encoding='UTF-8'?>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3145"></a><tt class="py-lineno">3145</tt> <tt class="py-line"> <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2944" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2944', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s<a>%s</a>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-2945" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2903', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3097"></a><tt class="py-lineno">3097</tt> <tt class="py-line"> <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3098"></a><tt class="py-lineno">3098</tt> <tt class="py-line"> </tt>
-<a name="L3099"></a><tt class="py-lineno">3099</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2904" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2945', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3146"></a><tt class="py-lineno">3146</tt> <tt class="py-line"> <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3147"></a><tt class="py-lineno">3147</tt> <tt class="py-line"> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2905', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3100"></a><tt class="py-lineno">3100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2906" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2946', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2947" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2947', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3149"></a><tt class="py-lineno">3149</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2948" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2906', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2907', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3101"></a><tt class="py-lineno">3101</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3102"></a><tt class="py-lineno">3102</tt> <tt class="py-line"> </tt>
-<a name="L3103"></a><tt class="py-lineno">3103</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2949', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</tt> <tt class="py-line"> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3151"></a><tt class="py-lineno">3151</tt> <tt class="py-line"> </tt>
+<a name="L3152"></a><tt class="py-lineno">3152</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2950" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2908', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2909" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2950', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2951" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2909', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3104"></a><tt class="py-lineno">3104</tt> <tt class="py-line"> <tt id="link-2910" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2951', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3153"></a><tt class="py-lineno">3153</tt> <tt class="py-line"> <tt id="link-2952" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2910', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2911" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2952', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2953" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2911', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3105"></a><tt class="py-lineno">3105</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2912" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2912', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2953', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3154"></a><tt class="py-lineno">3154</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2954" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2954', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3155"></a><tt class="py-lineno">3155</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2913', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2914" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2955', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2956" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2914', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3107"></a><tt class="py-lineno">3107</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_wrong_unicode_encoding"></a><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-def"><a name="L3108"></a><tt class="py-lineno">3108</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_wrong_unicode_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase._test_wrong_unicode_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-expanded"><a name="L3109"></a><tt class="py-lineno">3109</tt> <tt class="py-line"> <tt class="py-comment"># raise error on wrong encoding declaration in unicode strings</tt> </tt>
-<a name="L3110"></a><tt class="py-lineno">3110</tt> <tt class="py-line"> <tt id="link-2915" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2956', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3156"></a><tt class="py-lineno">3156</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_wrong_unicode_encoding"></a><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_wrong_unicode_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase._test_wrong_unicode_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt> <tt class="py-line"> <tt class="py-comment"># raise error on wrong encoding declaration in unicode strings</tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</tt> <tt class="py-line"> <tt id="link-2957" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2915', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2957', 'XML', 'link-259');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2916', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2917" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2958', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2959" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2917', 'XML', 'link-259');">XML</a></tt> </tt>
-<a name="L3111"></a><tt class="py-lineno">3111</tt> <tt class="py-line"> <tt class="py-name">test_utf</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2918" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2918', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1"?>'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L3112"></a><tt class="py-lineno">3112</tt> <tt class="py-line"> <tt id="link-2919" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2919', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3113"></a><tt class="py-lineno">3113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2920" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2959', 'XML', 'link-259');">XML</a></tt> </tt>
+<a name="L3160"></a><tt class="py-lineno">3160</tt> <tt class="py-line"> <tt class="py-name">test_utf</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2960" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2960', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1"?>'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
+<a name="L3161"></a><tt class="py-lineno">3161</tt> <tt class="py-line"> <tt id="link-2961" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2961', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3162"></a><tt class="py-lineno">3162</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2962" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2920', 'XML', 'link-259');">XML</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_utf</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3114"></a><tt class="py-lineno">3114</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_write_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-def"><a name="L3115"></a><tt class="py-lineno">3115</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_write_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_write_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-expanded"><a name="L3116"></a><tt class="py-lineno">3116</tt> <tt class="py-line"> <tt id="link-2921" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2962', 'XML', 'link-259');">XML</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_utf</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3163"></a><tt class="py-lineno">3163</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_write_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-def"><a name="L3164"></a><tt class="py-lineno">3164</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_write_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_write_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-expanded"><a name="L3165"></a><tt class="py-lineno">3165</tt> <tt class="py-line"> <tt id="link-2963" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2921', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2963', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2964" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2922', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2923" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2964', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2965" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2923', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3117"></a><tt class="py-lineno">3117</tt> <tt class="py-line"> <tt id="link-2924" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2965', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt> <tt class="py-line"> <tt id="link-2966" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2924', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2925" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2966', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2967" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2925', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2967', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2968" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2926', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3118"></a><tt class="py-lineno">3118</tt> <tt class="py-line"> </tt>
-<a name="L3119"></a><tt class="py-lineno">3119</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2927" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2968', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt> <tt class="py-line"> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2969" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2927', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3120"></a><tt class="py-lineno">3120</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2969', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3169"></a><tt class="py-lineno">3169</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2928', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2929" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2929', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3121"></a><tt class="py-lineno">3121</tt> <tt class="py-line"> </tt>
-<a name="L3122"></a><tt class="py-lineno">3122</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3123"></a><tt class="py-lineno">3123</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2930" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2970', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2971" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2971', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3170"></a><tt class="py-lineno">3170</tt> <tt class="py-line"> </tt>
+<a name="L3171"></a><tt class="py-lineno">3171</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3172"></a><tt class="py-lineno">3172</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2972" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2930', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2931" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2931', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3124"></a><tt class="py-lineno">3124</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2932', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3125"></a><tt class="py-lineno">3125</tt> <tt class="py-line"> <tt id="link-2933" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2933', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2934" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2934', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2935" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2935', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2936" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2936', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt> <tt class="py-line"> <tt id="link-2937" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2937', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt> <tt class="py-line"> <tt id="link-2938" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2938', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3129"></a><tt class="py-lineno">3129</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring"></a><div id="_ETreeTestCaseBase.test_encoding_tostring-def"><a name="L3130"></a><tt class="py-lineno">3130</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring-expanded"><a name="L3131"></a><tt class="py-lineno">3131</tt> <tt class="py-line"> <tt id="link-2939" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2972', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2973" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-2973', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3173"></a><tt class="py-lineno">3173</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2974', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3174"></a><tt class="py-lineno">3174</tt> <tt class="py-line"> <tt id="link-2975" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2975', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2976', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2977" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2977', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2978" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2978', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3175"></a><tt class="py-lineno">3175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3176"></a><tt class="py-lineno">3176</tt> <tt class="py-line"> <tt id="link-2979" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2979', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3177"></a><tt class="py-lineno">3177</tt> <tt class="py-line"> <tt id="link-2980" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2980', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3178"></a><tt class="py-lineno">3178</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring"></a><div id="_ETreeTestCaseBase.test_encoding_tostring-def"><a name="L3179"></a><tt class="py-lineno">3179</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring-expanded"><a name="L3180"></a><tt class="py-lineno">3180</tt> <tt class="py-line"> <tt id="link-2981" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2939', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2981', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2982" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2940', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2982', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2941', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3132"></a><tt class="py-lineno">3132</tt> <tt class="py-line"> <tt id="link-2942" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2942', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2983', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt> <tt class="py-line"> <tt id="link-2984" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2984', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2943', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2944" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2944', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt> <tt class="py-line"> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2945" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2985', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2986" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2986', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt> <tt class="py-line"> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2987" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2945', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3135"></a><tt class="py-lineno">3135</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2987', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3184"></a><tt class="py-lineno">3184</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2988" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2946', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2947" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2947', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3136"></a><tt class="py-lineno">3136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2948" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2948', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3137"></a><tt class="py-lineno">3137</tt> <tt class="py-line"> <tt id="link-2949" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2949', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2950" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2988', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2989" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2989', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3185"></a><tt class="py-lineno">3185</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2990" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2990', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>Søk på nettet</a>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3186"></a><tt class="py-lineno">3186</tt> <tt class="py-line"> <tt id="link-2991" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2991', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2992" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2950', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3138"></a><tt class="py-lineno">3138</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_unknown"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-def"><a name="L3139"></a><tt class="py-lineno">3139</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_unknown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-expanded"><a name="L3140"></a><tt class="py-lineno">3140</tt> <tt class="py-line"> <tt id="link-2951" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2992', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3187"></a><tt class="py-lineno">3187</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_unknown"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-def"><a name="L3188"></a><tt class="py-lineno">3188</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_unknown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-expanded"><a name="L3189"></a><tt class="py-lineno">3189</tt> <tt class="py-line"> <tt id="link-2993" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2951', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2952" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2993', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2994" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2952', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2953" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2994', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2995" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2953', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3141"></a><tt class="py-lineno">3141</tt> <tt class="py-line"> <tt id="link-2954" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2954', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2995', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3190"></a><tt class="py-lineno">3190</tt> <tt class="py-line"> <tt id="link-2996" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2996', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2955', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2956" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2956', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3142"></a><tt class="py-lineno">3142</tt> <tt class="py-line"> </tt>
-<a name="L3143"></a><tt class="py-lineno">3143</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2957" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2997', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2998', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3191"></a><tt class="py-lineno">3191</tt> <tt class="py-line"> </tt>
+<a name="L3192"></a><tt class="py-lineno">3192</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2999" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2957', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3144"></a><tt class="py-lineno">3144</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2999', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3193"></a><tt class="py-lineno">3193</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2958', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2959" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2959', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3145"></a><tt class="py-lineno">3145</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt id="link-2960" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2960', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L3146"></a><tt class="py-lineno">3146</tt> <tt class="py-line"> <tt id="link-2961" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3000', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3001" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3001', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3194"></a><tt class="py-lineno">3194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt id="link-3002" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3002', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L3195"></a><tt class="py-lineno">3195</tt> <tt class="py-line"> <tt id="link-3003" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2961', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'Invalid Encoding'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3147"></a><tt class="py-lineno">3147</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_sub"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-def"><a name="L3148"></a><tt class="py-lineno">3148</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-expanded"><a name="L3149"></a><tt class="py-lineno">3149</tt> <tt class="py-line"> <tt id="link-2962" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3003', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'Invalid Encoding'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3196"></a><tt class="py-lineno">3196</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_sub"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-def"><a name="L3197"></a><tt class="py-lineno">3197</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-expanded"><a name="L3198"></a><tt class="py-lineno">3198</tt> <tt class="py-line"> <tt id="link-3004" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2962', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2963" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3004', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2963', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2964" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3005', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3006" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2964', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3150"></a><tt class="py-lineno">3150</tt> <tt class="py-line"> <tt id="link-2965" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2965', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3006', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3199"></a><tt class="py-lineno">3199</tt> <tt class="py-line"> <tt id="link-3007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3007', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3008" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2966', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2967" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2967', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L3151"></a><tt class="py-lineno">3151</tt> <tt class="py-line"> <tt id="link-2968" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2968', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2969" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3008', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3009', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3200"></a><tt class="py-lineno">3200</tt> <tt class="py-line"> <tt id="link-3010" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3010', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3011" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2969', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2970', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt> <tt class="py-line"> </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2971" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3011', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3012', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3201"></a><tt class="py-lineno">3201</tt> <tt class="py-line"> </tt>
+<a name="L3202"></a><tt class="py-lineno">3202</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3013" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2971', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3154"></a><tt class="py-lineno">3154</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2972" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2972', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3155"></a><tt class="py-lineno">3155</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2973" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3013', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3203"></a><tt class="py-lineno">3203</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3014" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3014', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3204"></a><tt class="py-lineno">3204</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2973', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2974" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2974', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3156"></a><tt class="py-lineno">3156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2975" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2975', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>Søk på nettet</b>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3157"></a><tt class="py-lineno">3157</tt> <tt class="py-line"> <tt id="link-2976" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2976', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2977" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3015', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3016" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3016', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3205"></a><tt class="py-lineno">3205</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3017" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3017', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>Søk på nettet</b>'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3206"></a><tt class="py-lineno">3206</tt> <tt class="py-line"> <tt id="link-3018" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3018', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3019" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2977', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3158"></a><tt class="py-lineno">3158</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_sub_tail"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-def"><a name="L3159"></a><tt class="py-lineno">3159</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-expanded"><a name="L3160"></a><tt class="py-lineno">3160</tt> <tt class="py-line"> <tt id="link-2978" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3019', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3207"></a><tt class="py-lineno">3207</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_sub_tail"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-def"><a name="L3208"></a><tt class="py-lineno">3208</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-expanded"><a name="L3209"></a><tt class="py-lineno">3209</tt> <tt class="py-line"> <tt id="link-3020" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2978', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2979" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3020', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2979', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2980" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3021', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3022" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2980', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3161"></a><tt class="py-lineno">3161</tt> <tt class="py-line"> <tt id="link-2981" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2981', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2982" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3022', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3210"></a><tt class="py-lineno">3210</tt> <tt class="py-line"> <tt id="link-3023" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3023', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3024" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2982', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2983', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</tt> <tt class="py-line"> <tt id="link-2984" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2984', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3024', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3025" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3025', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3211"></a><tt class="py-lineno">3211</tt> <tt class="py-line"> <tt id="link-3026" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3026', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2985', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2986" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2986', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3163"></a><tt class="py-lineno">3163</tt> <tt class="py-line"> </tt>
-<a name="L3164"></a><tt class="py-lineno">3164</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2987" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3027', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3028', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3212"></a><tt class="py-lineno">3212</tt> <tt class="py-line"> </tt>
+<a name="L3213"></a><tt class="py-lineno">3213</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3029" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2987', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3165"></a><tt class="py-lineno">3165</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2988" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2988', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3166"></a><tt class="py-lineno">3166</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3029', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3030" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3030', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3031" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2989', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2990" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2990', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3167"></a><tt class="py-lineno">3167</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2991" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2991', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-2992" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2992', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3168"></a><tt class="py-lineno">3168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2993" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2993', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>Søk på nettet</b>Søk'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3169"></a><tt class="py-lineno">3169</tt> <tt class="py-line"> <tt id="link-2994" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2994', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2995" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3031', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3032" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3032', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3033" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3033', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3034" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3034', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3035" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3035', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>Søk på nettet</b>Søk'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3218"></a><tt class="py-lineno">3218</tt> <tt class="py-line"> <tt id="link-3036" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3036', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3037" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-2995', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3170"></a><tt class="py-lineno">3170</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-def"><a name="L3171"></a><tt class="py-lineno">3171</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-expanded"><a name="L3172"></a><tt class="py-lineno">3172</tt> <tt class="py-line"> <tt id="link-2996" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3037', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3219"></a><tt class="py-lineno">3219</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-def"><a name="L3220"></a><tt class="py-lineno">3220</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-expanded"><a name="L3221"></a><tt class="py-lineno">3221</tt> <tt class="py-line"> <tt id="link-3038" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2996', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3038', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2997', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3039', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3040" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2998', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt> <tt class="py-line"> <tt id="link-2999" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2999', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3040', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3222"></a><tt class="py-lineno">3222</tt> <tt class="py-line"> <tt id="link-3041" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3041', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3042" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3000', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3001" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3001', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L3174"></a><tt class="py-lineno">3174</tt> <tt class="py-line"> <tt id="link-3002" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3002', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3003" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3042', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3043', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3223"></a><tt class="py-lineno">3223</tt> <tt class="py-line"> <tt id="link-3044" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3044', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3003', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3004" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3004', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3175"></a><tt class="py-lineno">3175</tt> <tt class="py-line"> </tt>
-<a name="L3176"></a><tt class="py-lineno">3176</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3005" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3045', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3046" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3046', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3224"></a><tt class="py-lineno">3224</tt> <tt class="py-line"> </tt>
+<a name="L3225"></a><tt class="py-lineno">3225</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3047" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3005', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3177"></a><tt class="py-lineno">3177</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3006" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3047', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3226"></a><tt class="py-lineno">3226</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3048" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3006', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3007" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3007', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt> <tt class="py-line"> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-3008" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3008', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>S&#248;k p&#229; nettet</a>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3180"></a><tt class="py-lineno">3180</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3181"></a><tt class="py-lineno">3181</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
-<a name="L3182"></a><tt class="py-lineno">3182</tt> <tt class="py-line"> <tt id="link-3009" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3009', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3183"></a><tt class="py-lineno">3183</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-def"><a name="L3184"></a><tt class="py-lineno">3184</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-expanded"><a name="L3185"></a><tt class="py-lineno">3185</tt> <tt class="py-line"> <tt id="link-3010" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3048', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3049" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3049', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3227"></a><tt class="py-lineno">3227</tt> <tt class="py-line"> </tt>
+<a name="L3228"></a><tt class="py-lineno">3228</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-3050" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3050', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a>S&#248;k p&#229; nettet</a>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3229"></a><tt class="py-lineno">3229</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3230"></a><tt class="py-lineno">3230</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
+<a name="L3231"></a><tt class="py-lineno">3231</tt> <tt class="py-line"> <tt id="link-3051" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3051', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3232"></a><tt class="py-lineno">3232</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-def"><a name="L3233"></a><tt class="py-lineno">3233</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-expanded"><a name="L3234"></a><tt class="py-lineno">3234</tt> <tt class="py-line"> <tt id="link-3052" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3010', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3011" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3052', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3053" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3011', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3053', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3054" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3012', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3186"></a><tt class="py-lineno">3186</tt> <tt class="py-line"> <tt id="link-3013" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3013', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3054', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3235"></a><tt class="py-lineno">3235</tt> <tt class="py-line"> <tt id="link-3055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3055', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3014', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3015', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L3187"></a><tt class="py-lineno">3187</tt> <tt class="py-line"> <tt id="link-3016" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3016', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3017" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3056', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3057', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3236"></a><tt class="py-lineno">3236</tt> <tt class="py-line"> <tt id="link-3058" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3058', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3059" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3017', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3018', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3188"></a><tt class="py-lineno">3188</tt> <tt class="py-line"> </tt>
-<a name="L3189"></a><tt class="py-lineno">3189</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3019" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3059', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3060" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3060', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3237"></a><tt class="py-lineno">3237</tt> <tt class="py-line"> </tt>
+<a name="L3238"></a><tt class="py-lineno">3238</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3061" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3019', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3190"></a><tt class="py-lineno">3190</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3020', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3191"></a><tt class="py-lineno">3191</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3061', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3239"></a><tt class="py-lineno">3239</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3062', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3240"></a><tt class="py-lineno">3240</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3063" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3021', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3022" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3022', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3192"></a><tt class="py-lineno">3192</tt> <tt class="py-line"> </tt>
-<a name="L3193"></a><tt class="py-lineno">3193</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-3023" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3023', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>S&#248;k p&#229; nettet</b>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3195"></a><tt class="py-lineno">3195</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
-<a name="L3196"></a><tt class="py-lineno">3196</tt> <tt class="py-line"> <tt id="link-3024" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3024', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3197"></a><tt class="py-lineno">3197</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_xml"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-def"><a name="L3198"></a><tt class="py-lineno">3198</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_xml-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_xml');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-expanded"><a name="L3199"></a><tt class="py-lineno">3199</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3025" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3025', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3200"></a><tt class="py-lineno">3200</tt> <tt class="py-line"> <tt id="link-3026" class="py-name" targets="Variable lxml.tests.test_unicode.uxml=lxml.tests.test_unicode-module.html#uxml"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3026', 'uxml', 'link-3026');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-3027" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3027', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
-<a name="L3201"></a><tt class="py-lineno">3201</tt> <tt class="py-line"> <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-3028" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3028', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1" ?>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3202"></a><tt class="py-lineno">3202</tt> <tt class="py-line"> <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-3029" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3029', 'uxml', 'link-3026');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3203"></a><tt class="py-lineno">3203</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3030" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3063', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3064" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3064', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3241"></a><tt class="py-lineno">3241</tt> <tt class="py-line"> </tt>
+<a name="L3242"></a><tt class="py-lineno">3242</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-3065" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3065', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b>S&#248;k p&#229; nettet</b>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3243"></a><tt class="py-lineno">3243</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3244"></a><tt class="py-lineno">3244</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
+<a name="L3245"></a><tt class="py-lineno">3245</tt> <tt class="py-line"> <tt id="link-3066" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3066', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3246"></a><tt class="py-lineno">3246</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_xml"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-def"><a name="L3247"></a><tt class="py-lineno">3247</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_xml-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_xml');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-expanded"><a name="L3248"></a><tt class="py-lineno">3248</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3067" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3067', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3249"></a><tt class="py-lineno">3249</tt> <tt class="py-line"> <tt id="link-3068" class="py-name" targets="Variable lxml.tests.test_unicode.uxml=lxml.tests.test_unicode-module.html#uxml"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3068', 'uxml', 'link-3068');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-3069" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3069', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
+<a name="L3250"></a><tt class="py-lineno">3250</tt> <tt class="py-line"> <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-3070" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3070', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1" ?>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3251"></a><tt class="py-lineno">3251</tt> <tt class="py-line"> <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-3071" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3071', 'uxml', 'link-3068');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3252"></a><tt class="py-lineno">3252</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3072" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3030', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3031" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3072', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3073" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3031', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt> </tt>
-<a name="L3204"></a><tt class="py-lineno">3204</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3073', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt> </tt>
+<a name="L3253"></a><tt class="py-lineno">3253</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3074" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3032', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3205"></a><tt class="py-lineno">3205</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_utf8_bom"></a><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-def"><a name="L3206"></a><tt class="py-lineno">3206</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_utf8_bom-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_utf8_bom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-expanded"><a name="L3207"></a><tt class="py-lineno">3207</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3033" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3033', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3208"></a><tt class="py-lineno">3208</tt> <tt class="py-line"> <tt id="link-3034" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3034', 'uxml', 'link-3026');">uxml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-3035" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3035', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="UTF-8"?>'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L3209"></a><tt class="py-lineno">3209</tt> <tt class="py-line"> <tt id="link-3036" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3036', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt><tt class="py-op">)</tt> </tt>
-<a name="L3210"></a><tt class="py-lineno">3210</tt> <tt class="py-line"> <tt class="py-name">bom</tt> <tt class="py-op">=</tt> <tt id="link-3037" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3037', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\xEF\\xBB\\xBF'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"latin1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt> <tt class="py-line"> <tt id="link-3038" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3038', 'xml', 'link-2491');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bom</tt> <tt class="py-op">+</tt> <tt id="link-3039" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3039', 'uxml', 'link-3026');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3040" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3074', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3254"></a><tt class="py-lineno">3254</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_utf8_bom"></a><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-def"><a name="L3255"></a><tt class="py-lineno">3255</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_utf8_bom-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_utf8_bom');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-expanded"><a name="L3256"></a><tt class="py-lineno">3256</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3075" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3075', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3257"></a><tt class="py-lineno">3257</tt> <tt class="py-line"> <tt id="link-3076" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3076', 'uxml', 'link-3068');">uxml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-3077" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3077', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="UTF-8"?>'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
+<a name="L3258"></a><tt class="py-lineno">3258</tt> <tt class="py-line"> <tt id="link-3078" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3078', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt><tt class="py-op">)</tt> </tt>
+<a name="L3259"></a><tt class="py-lineno">3259</tt> <tt class="py-line"> <tt class="py-name">bom</tt> <tt class="py-op">=</tt> <tt id="link-3079" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3079', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\xEF\\xBB\\xBF'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"latin1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3260"></a><tt class="py-lineno">3260</tt> <tt class="py-line"> <tt id="link-3080" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3080', 'xml', 'link-2533');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bom</tt> <tt class="py-op">+</tt> <tt id="link-3081" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3081', 'uxml', 'link-3068');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3082" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3040', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3082', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3041', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3042" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3042', 'xml', 'link-2491');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3083', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3084" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3084', 'xml', 'link-2533');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3262"></a><tt class="py-lineno">3262</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3085" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3043', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3214"></a><tt class="py-lineno">3214</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-def"><a name="L3215"></a><tt class="py-lineno">3215</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_parse_stringio');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-expanded"><a name="L3216"></a><tt class="py-lineno">3216</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3044" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3044', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt> <tt class="py-line"> <tt id="link-3045" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3045', 'uxml', 'link-3026');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-3046" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3046', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
-<a name="L3218"></a><tt class="py-lineno">3218</tt> <tt class="py-line"> <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-3047" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3047', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1" ?>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3219"></a><tt class="py-lineno">3219</tt> <tt class="py-line"> <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-3048" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3048', 'uxml', 'link-3026');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3085', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3263"></a><tt class="py-lineno">3263</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-def"><a name="L3264"></a><tt class="py-lineno">3264</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_parse_stringio');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-expanded"><a name="L3265"></a><tt class="py-lineno">3265</tt> <tt class="py-line"> <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-3086" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3086', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Søk på nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3266"></a><tt class="py-lineno">3266</tt> <tt class="py-line"> <tt id="link-3087" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3087', 'uxml', 'link-3068');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-3088" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3088', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<p>%s</p>'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt> <tt class="py-line"> <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-3089" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3089', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version="1.0" encoding="iso-8859-1" ?>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3268"></a><tt class="py-lineno">3268</tt> <tt class="py-line"> <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-3090" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-3090', 'uxml', 'link-3068');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3269"></a><tt class="py-lineno">3269</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3091" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3049', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3050" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3091', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3050', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3051" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3051', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3221"></a><tt class="py-lineno">3221</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3052" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3092', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3093" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3093', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3270"></a><tt class="py-lineno">3270</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3052', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3222"></a><tt class="py-lineno">3222</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-def"><a name="L3223"></a><tt class="py-lineno">3223</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_elementtree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-expanded"><a name="L3224"></a><tt class="py-lineno">3224</tt> <tt class="py-line"> <tt id="link-3053" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3094', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3271"></a><tt class="py-lineno">3271</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-def"><a name="L3272"></a><tt class="py-lineno">3272</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_elementtree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-expanded"><a name="L3273"></a><tt class="py-lineno">3273</tt> <tt class="py-line"> <tt id="link-3095" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3053', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3054" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3095', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3054', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3055" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3096', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3097" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3055', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3225"></a><tt class="py-lineno">3225</tt> <tt class="py-line"> <tt id="link-3056" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3097', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt> <tt class="py-line"> <tt id="link-3098" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3056', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3057" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3098', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3057', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3099', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3100" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3058', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3226"></a><tt class="py-lineno">3226</tt> <tt class="py-line"> </tt>
-<a name="L3227"></a><tt class="py-lineno">3227</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3059" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3100', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3275"></a><tt class="py-lineno">3275</tt> <tt class="py-line"> </tt>
+<a name="L3276"></a><tt class="py-lineno">3276</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3101" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3059', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3228"></a><tt class="py-lineno">3228</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3060" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3101', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3277"></a><tt class="py-lineno">3277</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3060', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Foo"</tt> </tt>
-<a name="L3229"></a><tt class="py-lineno">3229</tt> <tt class="py-line"> <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3061" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3102', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Foo"</tt> </tt>
+<a name="L3278"></a><tt class="py-lineno">3278</tt> <tt class="py-line"> <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3103" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3061', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt> <tt class="py-line"> </tt>
-<a name="L3231"></a><tt class="py-lineno">3231</tt> <tt class="py-line"> <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3062" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3103', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3279"></a><tt class="py-lineno">3279</tt> <tt class="py-line"> </tt>
+<a name="L3280"></a><tt class="py-lineno">3280</tt> <tt class="py-line"> <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3104" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3062', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3232"></a><tt class="py-lineno">3232</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3063" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3063', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3104', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3281"></a><tt class="py-lineno">3281</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3105', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3106" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3064', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3233"></a><tt class="py-lineno">3233</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3065', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3066" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3106', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3282"></a><tt class="py-lineno">3282</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3107" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3107', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3108" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3066', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3234"></a><tt class="py-lineno">3234</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3235"></a><tt class="py-lineno">3235</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3067" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3067', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3068', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3236"></a><tt class="py-lineno">3236</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy"></a><div id="_ETreeTestCaseBase.test_deepcopy-def"><a name="L3237"></a><tt class="py-lineno">3237</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy-expanded"><a name="L3238"></a><tt class="py-lineno">3238</tt> <tt class="py-line"> <tt id="link-3069" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3108', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3283"></a><tt class="py-lineno">3283</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3284"></a><tt class="py-lineno">3284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3109" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3109', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3110', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3285"></a><tt class="py-lineno">3285</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy"></a><div id="_ETreeTestCaseBase.test_deepcopy-def"><a name="L3286"></a><tt class="py-lineno">3286</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy-expanded"><a name="L3287"></a><tt class="py-lineno">3287</tt> <tt class="py-line"> <tt id="link-3111" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3069', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3070" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3111', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3112" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3070', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3112', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3071', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3239"></a><tt class="py-lineno">3239</tt> <tt class="py-line"> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3072" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3113', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3288"></a><tt class="py-lineno">3288</tt> <tt class="py-line"> </tt>
+<a name="L3289"></a><tt class="py-lineno">3289</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3114" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3072', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3073" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3114', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3290"></a><tt class="py-lineno">3290</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3073', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3242"></a><tt class="py-lineno">3242</tt> <tt class="py-line"> </tt>
-<a name="L3243"></a><tt class="py-lineno">3243</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3074" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3115', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3291"></a><tt class="py-lineno">3291</tt> <tt class="py-line"> </tt>
+<a name="L3292"></a><tt class="py-lineno">3292</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3116" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3074', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3244"></a><tt class="py-lineno">3244</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3075" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3116', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3293"></a><tt class="py-lineno">3293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3075', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3245"></a><tt class="py-lineno">3245</tt> <tt class="py-line"> </tt>
-<a name="L3246"></a><tt class="py-lineno">3246</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3076" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3117', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3294"></a><tt class="py-lineno">3294</tt> <tt class="py-line"> </tt>
+<a name="L3295"></a><tt class="py-lineno">3295</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3118" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3076', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3247"></a><tt class="py-lineno">3247</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3118', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3296"></a><tt class="py-lineno">3296</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3077', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3248"></a><tt class="py-lineno">3248</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3119', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3297"></a><tt class="py-lineno">3297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3078', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt> <tt class="py-line"> </tt>
-<a name="L3250"></a><tt class="py-lineno">3250</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3251"></a><tt class="py-lineno">3251</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3079" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3120', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3298"></a><tt class="py-lineno">3298</tt> <tt class="py-line"> </tt>
+<a name="L3299"></a><tt class="py-lineno">3299</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3300"></a><tt class="py-lineno">3300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3121" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3079', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3252"></a><tt class="py-lineno">3252</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_tail"></a><div id="_ETreeTestCaseBase.test_deepcopy_tail-def"><a name="L3253"></a><tt class="py-lineno">3253</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_tail-expanded"><a name="L3254"></a><tt class="py-lineno">3254</tt> <tt class="py-line"> <tt id="link-3080" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3121', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3301"></a><tt class="py-lineno">3301</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_tail"></a><div id="_ETreeTestCaseBase.test_deepcopy_tail-def"><a name="L3302"></a><tt class="py-lineno">3302</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_tail');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_tail-expanded"><a name="L3303"></a><tt class="py-lineno">3303</tt> <tt class="py-line"> <tt id="link-3122" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3080', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3122', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3123" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3081', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3082" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3082', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt> <tt class="py-line"> </tt>
-<a name="L3256"></a><tt class="py-lineno">3256</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3083" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3124', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3304"></a><tt class="py-lineno">3304</tt> <tt class="py-line"> </tt>
+<a name="L3305"></a><tt class="py-lineno">3305</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3125" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3083', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3257"></a><tt class="py-lineno">3257</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3084', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3258"></a><tt class="py-lineno">3258</tt> <tt class="py-line"> </tt>
-<a name="L3259"></a><tt class="py-lineno">3259</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3085" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3125', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3306"></a><tt class="py-lineno">3306</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3126" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3126', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3307"></a><tt class="py-lineno">3307</tt> <tt class="py-line"> </tt>
+<a name="L3308"></a><tt class="py-lineno">3308</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3127" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3085', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3260"></a><tt class="py-lineno">3260</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3086', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt> <tt class="py-line"> </tt>
-<a name="L3262"></a><tt class="py-lineno">3262</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3087', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3263"></a><tt class="py-lineno">3263</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3088" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3088', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3264"></a><tt class="py-lineno">3264</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3089" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3089', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3265"></a><tt class="py-lineno">3265</tt> <tt class="py-line"> </tt>
-<a name="L3266"></a><tt class="py-lineno">3266</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3267"></a><tt class="py-lineno">3267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3090" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3090', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3268"></a><tt class="py-lineno">3268</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_subelement"></a><div id="_ETreeTestCaseBase.test_deepcopy_subelement-def"><a name="L3269"></a><tt class="py-lineno">3269</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_subelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-expanded"><a name="L3270"></a><tt class="py-lineno">3270</tt> <tt class="py-line"> <tt id="link-3091" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3127', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3309"></a><tt class="py-lineno">3309</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3128" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3128', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3310"></a><tt class="py-lineno">3310</tt> <tt class="py-line"> </tt>
+<a name="L3311"></a><tt class="py-lineno">3311</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3129" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3129', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3312"></a><tt class="py-lineno">3312</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3130', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3313"></a><tt class="py-lineno">3313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3131', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3314"></a><tt class="py-lineno">3314</tt> <tt class="py-line"> </tt>
+<a name="L3315"></a><tt class="py-lineno">3315</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3316"></a><tt class="py-lineno">3316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3132', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3317"></a><tt class="py-lineno">3317</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_subelement"></a><div id="_ETreeTestCaseBase.test_deepcopy_subelement-def"><a name="L3318"></a><tt class="py-lineno">3318</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_subelement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-expanded"><a name="L3319"></a><tt class="py-lineno">3319</tt> <tt class="py-line"> <tt id="link-3133" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3091', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3133', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3134" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3092', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3093" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3135" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3093', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3271"></a><tt class="py-lineno">3271</tt> <tt class="py-line"> <tt id="link-3094" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3094', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3135', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</tt> <tt class="py-line"> <tt id="link-3136" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3136', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3095', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3096', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
-<a name="L3272"></a><tt class="py-lineno">3272</tt> <tt class="py-line"> </tt>
-<a name="L3273"></a><tt class="py-lineno">3273</tt> <tt class="py-line"> <tt id="link-3097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3097', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3098" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3138" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3138', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3321"></a><tt class="py-lineno">3321</tt> <tt class="py-line"> </tt>
+<a name="L3322"></a><tt class="py-lineno">3322</tt> <tt class="py-line"> <tt id="link-3139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3139', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3140" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3098', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3274"></a><tt class="py-lineno">3274</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3099" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3099', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3100', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3275"></a><tt class="py-lineno">3275</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3101" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3140', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3323"></a><tt class="py-lineno">3323</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3141" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3141', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3142" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3142', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3101', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooText'</tt> </tt>
-<a name="L3276"></a><tt class="py-lineno">3276</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3102', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooTail'</tt> </tt>
-<a name="L3277"></a><tt class="py-lineno">3277</tt> <tt class="py-line"> </tt>
-<a name="L3278"></a><tt class="py-lineno">3278</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3103" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3143', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooText'</tt> </tt>
+<a name="L3325"></a><tt class="py-lineno">3325</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3144" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3144', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooTail'</tt> </tt>
+<a name="L3326"></a><tt class="py-lineno">3326</tt> <tt class="py-line"> </tt>
+<a name="L3327"></a><tt class="py-lineno">3327</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3145" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3103', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3279"></a><tt class="py-lineno">3279</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3104" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3145', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3328"></a><tt class="py-lineno">3328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3104', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3280"></a><tt class="py-lineno">3280</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3105', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3281"></a><tt class="py-lineno">3281</tt> <tt class="py-line"> </tt>
-<a name="L3282"></a><tt class="py-lineno">3282</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3106" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3146', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3329"></a><tt class="py-lineno">3329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3147" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3147', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3330"></a><tt class="py-lineno">3330</tt> <tt class="py-line"> </tt>
+<a name="L3331"></a><tt class="py-lineno">3331</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3106', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarText'</tt> </tt>
-<a name="L3283"></a><tt class="py-lineno">3283</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3107" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3107', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarTail'</tt> </tt>
-<a name="L3284"></a><tt class="py-lineno">3284</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3108" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3108', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3285"></a><tt class="py-lineno">3285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3109" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3109', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3286"></a><tt class="py-lineno">3286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3148', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarText'</tt> </tt>
+<a name="L3332"></a><tt class="py-lineno">3332</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3149', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarTail'</tt> </tt>
+<a name="L3333"></a><tt class="py-lineno">3333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3150', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3334"></a><tt class="py-lineno">3334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3151" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3151', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3110', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3287"></a><tt class="py-lineno">3287</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3111" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3152', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3336"></a><tt class="py-lineno">3336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3111', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3288"></a><tt class="py-lineno">3288</tt> <tt class="py-line"> </tt>
-<a name="L3289"></a><tt class="py-lineno">3289</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3290"></a><tt class="py-lineno">3290</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3112" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3112', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3291"></a><tt class="py-lineno">3291</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3153', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</tt> <tt class="py-line"> </tt>
+<a name="L3338"></a><tt class="py-lineno">3338</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3339"></a><tt class="py-lineno">3339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3154', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3340"></a><tt class="py-lineno">3340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3113', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3292"></a><tt class="py-lineno">3292</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_namespaces"></a><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-def"><a name="L3293"></a><tt class="py-lineno">3293</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_namespaces-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_namespaces');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-expanded"><a name="L3294"></a><tt class="py-lineno">3294</tt> <tt class="py-line"> <tt id="link-3114" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3114', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3155', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3341"></a><tt class="py-lineno">3341</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_namespaces"></a><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-def"><a name="L3342"></a><tt class="py-lineno">3342</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_namespaces-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_namespaces');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-expanded"><a name="L3343"></a><tt class="py-lineno">3343</tt> <tt class="py-line"> <tt id="link-3156" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3156', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3157" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3115', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3157', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree.XML
lxml.objectify.XML
lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3116', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3117" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3117', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''<doc xmlns="dns" xmlns:t="tns"></tt> </tt>
-<a name="L3295"></a><tt class="py-lineno">3295</tt> <tt class="py-line"><tt class="py-string"> <parent><node t:foo="bar" /></parent></tt> </tt>
-<a name="L3296"></a><tt class="py-lineno">3296</tt> <tt class="py-line"><tt class="py-string"> </doc>'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3297"></a><tt class="py-lineno">3297</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3298"></a><tt class="py-lineno">3298</tt> <tt class="py-line"> <tt id="link-3118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3118', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3158', 'XML', 'link-259');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3159" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3159', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''<doc xmlns="dns" xmlns:t="tns"></tt> </tt>
+<a name="L3344"></a><tt class="py-lineno">3344</tt> <tt class="py-line"><tt class="py-string"> <parent><node t:foo="bar" /></parent></tt> </tt>
+<a name="L3345"></a><tt class="py-lineno">3345</tt> <tt class="py-line"><tt class="py-string"> </doc>'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3346"></a><tt class="py-lineno">3346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3347"></a><tt class="py-lineno">3347</tt> <tt class="py-line"> <tt id="link-3160" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3160', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3161" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3119', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3299"></a><tt class="py-lineno">3299</tt> <tt class="py-line"> <tt id="link-3120" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3161', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3348"></a><tt class="py-lineno">3348</tt> <tt class="py-line"> <tt id="link-3162" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3120', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-3121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3121', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3122" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3162', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3163', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3122', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3300"></a><tt class="py-lineno">3300</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3301"></a><tt class="py-lineno">3301</tt> <tt class="py-line"> <tt id="link-3123" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3123', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3164', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3349"></a><tt class="py-lineno">3349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3350"></a><tt class="py-lineno">3350</tt> <tt class="py-line"> <tt id="link-3165" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3165', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3166" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3124', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3302"></a><tt class="py-lineno">3302</tt> <tt class="py-line"> <tt id="link-3125" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3166', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3351"></a><tt class="py-lineno">3351</tt> <tt class="py-line"> <tt id="link-3167" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3125', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-3126" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3126', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3167', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3168', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3169" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3127', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-</div><a name="L3303"></a><tt class="py-lineno">3303</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_append"></a><div id="_ETreeTestCaseBase.test_deepcopy_append-def"><a name="L3304"></a><tt class="py-lineno">3304</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_append');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_append-expanded"><a name="L3305"></a><tt class="py-lineno">3305</tt> <tt class="py-line"> <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L3306"></a><tt class="py-lineno">3306</tt> <tt class="py-line"> <tt id="link-3128" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3169', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+</div><a name="L3352"></a><tt class="py-lineno">3352</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_append"></a><div id="_ETreeTestCaseBase.test_deepcopy_append-def"><a name="L3353"></a><tt class="py-lineno">3353</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_append');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_append-expanded"><a name="L3354"></a><tt class="py-lineno">3354</tt> <tt class="py-line"> <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L3355"></a><tt class="py-lineno">3355</tt> <tt class="py-line"> <tt id="link-3170" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3128', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3129" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3170', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3129', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3171', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3172" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3130', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3307"></a><tt class="py-lineno">3307</tt> <tt class="py-line"> <tt id="link-3131" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3131', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3132" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3172', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3356"></a><tt class="py-lineno">3356</tt> <tt class="py-line"> <tt id="link-3173" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3173', 'tostring', 'link-216');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3132', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3133" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3133', 'tostring', 'link-216');">tostring</a></tt> </tt>
-<a name="L3308"></a><tt class="py-lineno">3308</tt> <tt class="py-line"> </tt>
-<a name="L3309"></a><tt class="py-lineno">3309</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3134" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3174', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3175" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3175', 'tostring', 'link-216');">tostring</a></tt> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</tt> <tt class="py-line"> </tt>
+<a name="L3358"></a><tt class="py-lineno">3358</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3134', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3310"></a><tt class="py-lineno">3310</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3135" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3176', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3359"></a><tt class="py-lineno">3359</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3177" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3135', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3311"></a><tt class="py-lineno">3311</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3136" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3136', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3137" class="py-name"><a title="lxml.etree.Element
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3177', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3360"></a><tt class="py-lineno">3360</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3178" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3178', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3179" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3137', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3138" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3138', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3139" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3179', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3361"></a><tt class="py-lineno">3361</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3180', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3181" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3139', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'X'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3313"></a><tt class="py-lineno">3313</tt> <tt class="py-line"> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3140" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3140', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><C/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3315"></a><tt class="py-lineno">3315</tt> <tt class="py-line"> <tt id="link-3141" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3141', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3142" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3142', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3143" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3143', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3144" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3144', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3316"></a><tt class="py-lineno">3316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3145" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3145', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><X/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3317"></a><tt class="py-lineno">3317</tt> <tt class="py-line"> <tt id="link-3146" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3146', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3147" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3147', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3148" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3148', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3149" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3149', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3318"></a><tt class="py-lineno">3318</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_comment"></a><div id="_ETreeTestCaseBase.test_deepcopy_comment-def"><a name="L3319"></a><tt class="py-lineno">3319</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_comment-expanded"><a name="L3320"></a><tt class="py-lineno">3320</tt> <tt class="py-line"> <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L3321"></a><tt class="py-lineno">3321</tt> <tt class="py-line"> <tt class="py-comment"># not supported by ET < 1.3!</tt> </tt>
-<a name="L3322"></a><tt class="py-lineno">3322</tt> <tt class="py-line"> <tt id="link-3150" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3150', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3151" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3181', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'X'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt> <tt class="py-line"> </tt>
+<a name="L3363"></a><tt class="py-lineno">3363</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3182" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3182', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><C/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt> <tt class="py-line"> <tt id="link-3183" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3183', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3184" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3184', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3185" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3185', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3186" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3186', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3187" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3187', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><X/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3366"></a><tt class="py-lineno">3366</tt> <tt class="py-line"> <tt id="link-3188" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3188', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3189" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3189', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3190" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3190', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3191" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3191', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3367"></a><tt class="py-lineno">3367</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_comment"></a><div id="_ETreeTestCaseBase.test_deepcopy_comment-def"><a name="L3368"></a><tt class="py-lineno">3368</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_comment');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_comment-expanded"><a name="L3369"></a><tt class="py-lineno">3369</tt> <tt class="py-line"> <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L3370"></a><tt class="py-lineno">3370</tt> <tt class="py-line"> <tt class="py-comment"># not supported by ET < 1.3!</tt> </tt>
+<a name="L3371"></a><tt class="py-lineno">3371</tt> <tt class="py-line"> <tt id="link-3192" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3192', 'Comment', 'link-852');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3193" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3151', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3152', 'Comment', 'link-852');">Comment</a></tt> </tt>
-<a name="L3323"></a><tt class="py-lineno">3323</tt> <tt class="py-line"> </tt>
-<a name="L3324"></a><tt class="py-lineno">3324</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3153" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3153', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3325"></a><tt class="py-lineno">3325</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3154" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3193', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3194', 'Comment', 'link-852');">Comment</a></tt> </tt>
+<a name="L3372"></a><tt class="py-lineno">3372</tt> <tt class="py-line"> </tt>
+<a name="L3373"></a><tt class="py-lineno">3373</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3195" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3195', 'Comment', 'link-852');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3374"></a><tt class="py-lineno">3374</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3196" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3154', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3326"></a><tt class="py-lineno">3326</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3196', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3375"></a><tt class="py-lineno">3375</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3197" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3155', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
-<a name="L3327"></a><tt class="py-lineno">3327</tt> <tt class="py-line"> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3156" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3197', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
+<a name="L3376"></a><tt class="py-lineno">3376</tt> <tt class="py-line"> </tt>
+<a name="L3377"></a><tt class="py-lineno">3377</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3198" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3156', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3329"></a><tt class="py-lineno">3329</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3157" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3198', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3378"></a><tt class="py-lineno">3378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3199" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3157', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3330"></a><tt class="py-lineno">3330</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_shallowcopy"></a><div id="_ETreeTestCaseBase.test_shallowcopy-def"><a name="L3331"></a><tt class="py-lineno">3331</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_shallowcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy-expanded"><a name="L3332"></a><tt class="py-lineno">3332</tt> <tt class="py-line"> <tt id="link-3158" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3199', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3379"></a><tt class="py-lineno">3379</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_shallowcopy"></a><div id="_ETreeTestCaseBase.test_shallowcopy-def"><a name="L3380"></a><tt class="py-lineno">3380</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_shallowcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy-expanded"><a name="L3381"></a><tt class="py-lineno">3381</tt> <tt class="py-line"> <tt id="link-3200" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3158', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3200', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3201" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3159', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3160" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3201', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3160', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3333"></a><tt class="py-lineno">3333</tt> <tt class="py-line"> </tt>
-<a name="L3334"></a><tt class="py-lineno">3334</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3161" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3202', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3382"></a><tt class="py-lineno">3382</tt> <tt class="py-line"> </tt>
+<a name="L3383"></a><tt class="py-lineno">3383</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3203" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3161', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3335"></a><tt class="py-lineno">3335</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3203', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3384"></a><tt class="py-lineno">3384</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3204" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3162', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3336"></a><tt class="py-lineno">3336</tt> <tt class="py-line"> </tt>
-<a name="L3337"></a><tt class="py-lineno">3337</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3163" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3204', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3385"></a><tt class="py-lineno">3385</tt> <tt class="py-line"> </tt>
+<a name="L3386"></a><tt class="py-lineno">3386</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3205" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3163', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3205', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3164', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3206', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3387"></a><tt class="py-lineno">3387</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3207" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3165', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3339"></a><tt class="py-lineno">3339</tt> <tt class="py-line"> </tt>
-<a name="L3340"></a><tt class="py-lineno">3340</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3166" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3207', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3388"></a><tt class="py-lineno">3388</tt> <tt class="py-line"> </tt>
+<a name="L3389"></a><tt class="py-lineno">3389</tt> <tt class="py-line"> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3208" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3166', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3341"></a><tt class="py-lineno">3341</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3208', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3390"></a><tt class="py-lineno">3390</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3167', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3342"></a><tt class="py-lineno">3342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3209', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3391"></a><tt class="py-lineno">3391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3210" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3168', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3343"></a><tt class="py-lineno">3343</tt> <tt class="py-line"> <tt class="py-comment"># XXX ElementTree will share nodes, but lxml.etree won't..</tt> </tt>
-<a name="L3344"></a><tt class="py-lineno">3344</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_shallowcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-def"><a name="L3345"></a><tt class="py-lineno">3345</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy_elementtree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-expanded"><a name="L3346"></a><tt class="py-lineno">3346</tt> <tt class="py-line"> <tt id="link-3169" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3210', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3392"></a><tt class="py-lineno">3392</tt> <tt class="py-line"> <tt class="py-comment"># XXX ElementTree will share nodes, but lxml.etree won't..</tt> </tt>
+<a name="L3393"></a><tt class="py-lineno">3393</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_shallowcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-def"><a name="L3394"></a><tt class="py-lineno">3394</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy_elementtree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-expanded"><a name="L3395"></a><tt class="py-lineno">3395</tt> <tt class="py-line"> <tt id="link-3211" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3169', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3170" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3211', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3212" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3170', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3213" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3171', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3347"></a><tt class="py-lineno">3347</tt> <tt class="py-line"> <tt id="link-3172" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3213', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3396"></a><tt class="py-lineno">3396</tt> <tt class="py-line"> <tt id="link-3214" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3172', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3214', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3173', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3215', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3216" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3174', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt> <tt class="py-line"> </tt>
-<a name="L3349"></a><tt class="py-lineno">3349</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3175" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3216', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3397"></a><tt class="py-lineno">3397</tt> <tt class="py-line"> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3217" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3175', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3350"></a><tt class="py-lineno">3350</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3176" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3217', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3399"></a><tt class="py-lineno">3399</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3176', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3351"></a><tt class="py-lineno">3351</tt> <tt class="py-line"> <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3177" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3218', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3400"></a><tt class="py-lineno">3400</tt> <tt class="py-line"> <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3219" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3177', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3352"></a><tt class="py-lineno">3352</tt> <tt class="py-line"> </tt>
-<a name="L3353"></a><tt class="py-lineno">3353</tt> <tt class="py-line"> <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3178" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3219', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3401"></a><tt class="py-lineno">3401</tt> <tt class="py-line"> </tt>
+<a name="L3402"></a><tt class="py-lineno">3402</tt> <tt class="py-line"> <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3220" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3178', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3179" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3220', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3221" class="py-name"><a title="lxml.etree.PyErrorLog.copy
lxml.etree._BaseErrorLog.copy
lxml.etree._ErrorLog.copy
lxml.etree._IDDict.copy
lxml.etree._ListErrorLog.copy
-lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3179', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3355"></a><tt class="py-lineno">3355</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3180', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3181" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3181', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3182" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3182', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.selftest2.copy" class="py-name" href="#" onclick="return doclink('link-3221', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3403"></a><tt class="py-lineno">3403</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3404"></a><tt class="py-lineno">3404</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3222" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3222', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3223" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3223', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3405"></a><tt class="py-lineno">3405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3224" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3224', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3225" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3183', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3357"></a><tt class="py-lineno">3357</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_element_boolean"></a><div id="_ETreeTestCaseBase._test_element_boolean-def"><a name="L3358"></a><tt class="py-lineno">3358</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_element_boolean-toggle" onclick="return toggle('_ETreeTestCaseBase._test_element_boolean');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_element_boolean-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_element_boolean-expanded"><a name="L3359"></a><tt class="py-lineno">3359</tt> <tt class="py-line"> <tt class="py-comment"># deprecated as of ET 1.3/lxml 2.0</tt> </tt>
-<a name="L3360"></a><tt class="py-lineno">3360</tt> <tt class="py-line"> <tt id="link-3184" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3225', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3406"></a><tt class="py-lineno">3406</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_element_boolean"></a><div id="_ETreeTestCaseBase._test_element_boolean-def"><a name="L3407"></a><tt class="py-lineno">3407</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_element_boolean-toggle" onclick="return toggle('_ETreeTestCaseBase._test_element_boolean');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_element_boolean-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_element_boolean-expanded"><a name="L3408"></a><tt class="py-lineno">3408</tt> <tt class="py-line"> <tt class="py-comment"># deprecated as of ET 1.3/lxml 2.0</tt> </tt>
+<a name="L3409"></a><tt class="py-lineno">3409</tt> <tt class="py-line"> <tt id="link-3226" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3184', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3185" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3226', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3227" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3185', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3361"></a><tt class="py-lineno">3361</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3227', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3186', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3187" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3228', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3229" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3187', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3363"></a><tt class="py-lineno">3363</tt> <tt class="py-line"> <tt id="link-3188" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3229', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3412"></a><tt class="py-lineno">3412</tt> <tt class="py-line"> <tt id="link-3230" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3188', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3189" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3189', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3364"></a><tt class="py-lineno">3364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3365"></a><tt class="py-lineno">3365</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3190" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3230', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3231" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3231', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3413"></a><tt class="py-lineno">3413</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3414"></a><tt class="py-lineno">3414</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3232" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3190', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3191" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3232', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3233" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3191', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3366"></a><tt class="py-lineno">3366</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3233', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3415"></a><tt class="py-lineno">3415</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3192', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hey'</tt> </tt>
-<a name="L3367"></a><tt class="py-lineno">3367</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3368"></a><tt class="py-lineno">3368</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3193" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3234', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hey'</tt> </tt>
+<a name="L3416"></a><tt class="py-lineno">3416</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3417"></a><tt class="py-lineno">3417</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3235" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3193', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3235', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3194', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3369"></a><tt class="py-lineno">3369</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3195" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3195', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L3370"></a><tt class="py-lineno">3370</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3371"></a><tt class="py-lineno">3371</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3196" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3236', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3237', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L3419"></a><tt class="py-lineno">3419</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3420"></a><tt class="py-lineno">3420</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3238" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3196', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3197" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3238', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3197', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3198" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3239', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3421"></a><tt class="py-lineno">3421</tt> <tt class="py-line"> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3198', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3374"></a><tt class="py-lineno">3374</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_multiple_elementrees"></a><div id="_ETreeTestCaseBase.test_multiple_elementrees-def"><a name="L3375"></a><tt class="py-lineno">3375</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_multiple_elementrees-toggle" onclick="return toggle('_ETreeTestCaseBase.test_multiple_elementrees');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_multiple_elementrees-expanded"><a name="L3376"></a><tt class="py-lineno">3376</tt> <tt class="py-line"> <tt id="link-3199" class="py-name"><a title="lxml.etree
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3240', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3422"></a><tt class="py-lineno">3422</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3423"></a><tt class="py-lineno">3423</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_multiple_elementrees"></a><div id="_ETreeTestCaseBase.test_multiple_elementrees-def"><a name="L3424"></a><tt class="py-lineno">3424</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_multiple_elementrees-toggle" onclick="return toggle('_ETreeTestCaseBase.test_multiple_elementrees');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_multiple_elementrees-expanded"><a name="L3425"></a><tt class="py-lineno">3425</tt> <tt class="py-line"> <tt id="link-3241" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3199', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3241', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3200', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3377"></a><tt class="py-lineno">3377</tt> <tt class="py-line"> </tt>
-<a name="L3378"></a><tt class="py-lineno">3378</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3201" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3242', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3426"></a><tt class="py-lineno">3426</tt> <tt class="py-line"> </tt>
+<a name="L3427"></a><tt class="py-lineno">3427</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3243" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3201', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3243', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3244" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3202', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3379"></a><tt class="py-lineno">3379</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3203" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3244', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3428"></a><tt class="py-lineno">3428</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3203', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3204', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3380"></a><tt class="py-lineno">3380</tt> <tt class="py-line"> </tt>
-<a name="L3381"></a><tt class="py-lineno">3381</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-3205" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3245', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3246', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3429"></a><tt class="py-lineno">3429</tt> <tt class="py-line"> </tt>
+<a name="L3430"></a><tt class="py-lineno">3430</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3247', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3206', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3382"></a><tt class="py-lineno">3382</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3207" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3207', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3208" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3208', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3383"></a><tt class="py-lineno">3383</tt> <tt class="py-line"> </tt>
-<a name="L3384"></a><tt class="py-lineno">3384</tt> <tt class="py-line"> <tt class="py-name">t1</tt> <tt class="py-op">=</tt> <tt id="link-3209" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3248', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3431"></a><tt class="py-lineno">3431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3249" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3249', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3250" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3250', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3432"></a><tt class="py-lineno">3432</tt> <tt class="py-line"> </tt>
+<a name="L3433"></a><tt class="py-lineno">3433</tt> <tt class="py-line"> <tt class="py-name">t1</tt> <tt class="py-op">=</tt> <tt id="link-3251" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3209', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3210" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3251', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3252" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3210', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3385"></a><tt class="py-lineno">3385</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3211', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3212" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3212', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3386"></a><tt class="py-lineno">3386</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3213" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3213', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3214" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3214', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3387"></a><tt class="py-lineno">3387</tt> <tt class="py-line"> </tt>
-<a name="L3388"></a><tt class="py-lineno">3388</tt> <tt class="py-line"> <tt class="py-name">t2</tt> <tt class="py-op">=</tt> <tt id="link-3215" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3252', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3434"></a><tt class="py-lineno">3434</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3253" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3253', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3254" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3254', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3435"></a><tt class="py-lineno">3435</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3255" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3255', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3256" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3256', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3436"></a><tt class="py-lineno">3436</tt> <tt class="py-line"> </tt>
+<a name="L3437"></a><tt class="py-lineno">3437</tt> <tt class="py-line"> <tt class="py-name">t2</tt> <tt class="py-op">=</tt> <tt id="link-3257" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3215', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3216" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3257', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3258" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3216', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L3389"></a><tt class="py-lineno">3389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3217" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3217', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3218" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3218', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b/>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3219', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3220" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3220', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3391"></a><tt class="py-lineno">3391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3221" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3221', '_rootstring', 'link-3207');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3222" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3222', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3392"></a><tt class="py-lineno">3392</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname"></a><div id="_ETreeTestCaseBase.test_qname-def"><a name="L3393"></a><tt class="py-lineno">3393</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname-expanded"><a name="L3394"></a><tt class="py-lineno">3394</tt> <tt class="py-line"> <tt id="link-3223" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3258', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L3438"></a><tt class="py-lineno">3438</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3259', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3260" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3260', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<b/>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3439"></a><tt class="py-lineno">3439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3261', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3262" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3262', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3440"></a><tt class="py-lineno">3440</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3263', '_rootstring', 'link-3249');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3264" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3264', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a><b/></a>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3441"></a><tt class="py-lineno">3441</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname"></a><div id="_ETreeTestCaseBase.test_qname-def"><a name="L3442"></a><tt class="py-lineno">3442</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname-expanded"><a name="L3443"></a><tt class="py-lineno">3443</tt> <tt class="py-line"> <tt id="link-3265" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3223', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3224" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3265', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3224', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3395"></a><tt class="py-lineno">3395</tt> <tt class="py-line"> <tt id="link-3225" class="py-name" targets="Function lxml.tests.selftest.qname()=lxml.tests.selftest-module.html#qname,Function lxml.tests.selftest2.qname()=lxml.tests.selftest2-module.html#qname"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3225', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3266', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3444"></a><tt class="py-lineno">3444</tt> <tt class="py-line"> <tt id="link-3267" class="py-name" targets="Function lxml.tests.selftest.qname()=lxml.tests.selftest-module.html#qname,Function lxml.tests.selftest2.qname()=lxml.tests.selftest2-module.html#qname"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3267', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3268" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3226', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3227" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3227', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3396"></a><tt class="py-lineno">3396</tt> <tt class="py-line"> <tt class="py-name">a1</tt> <tt class="py-op">=</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3268', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3269', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3445"></a><tt class="py-lineno">3445</tt> <tt class="py-line"> <tt class="py-name">a1</tt> <tt class="py-op">=</tt> <tt id="link-3270" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3228', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3229" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3270', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3271" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3229', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3230" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3230', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3397"></a><tt class="py-lineno">3397</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-3231" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3271', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3272" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3272', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3446"></a><tt class="py-lineno">3446</tt> <tt class="py-line"> <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-3273" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3231', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3232" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3232', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">,</tt> <tt id="link-3233" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3233', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3398"></a><tt class="py-lineno">3398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">.</tt><tt id="link-3234" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3273', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3274" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3274', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">,</tt> <tt id="link-3275" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3275', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3447"></a><tt class="py-lineno">3447</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">.</tt><tt id="link-3276" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3234', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3399"></a><tt class="py-lineno">3399</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a2</tt><tt class="py-op">.</tt><tt id="link-3235" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3276', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3448"></a><tt class="py-lineno">3448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a2</tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3235', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3400"></a><tt class="py-lineno">3400</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_cmp"></a><div id="_ETreeTestCaseBase.test_qname_cmp-def"><a name="L3401"></a><tt class="py-lineno">3401</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_cmp-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_cmp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_cmp-expanded"><a name="L3402"></a><tt class="py-lineno">3402</tt> <tt class="py-line"> <tt id="link-3236" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3277', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3449"></a><tt class="py-lineno">3449</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_cmp"></a><div id="_ETreeTestCaseBase.test_qname_cmp-def"><a name="L3450"></a><tt class="py-lineno">3450</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_cmp-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_cmp');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_cmp-expanded"><a name="L3451"></a><tt class="py-lineno">3451</tt> <tt class="py-line"> <tt id="link-3278" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3236', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3278', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3279" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3237', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3403"></a><tt class="py-lineno">3403</tt> <tt class="py-line"> <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-3238" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3279', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3452"></a><tt class="py-lineno">3452</tt> <tt class="py-line"> <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-3280" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3238', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3239', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3404"></a><tt class="py-lineno">3404</tt> <tt class="py-line"> <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-3240" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3280', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3281', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3453"></a><tt class="py-lineno">3453</tt> <tt class="py-line"> <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-3282" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3240', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3241" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3241', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3405"></a><tt class="py-lineno">3405</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3406"></a><tt class="py-lineno">3406</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
-<a name="L3407"></a><tt class="py-lineno">3407</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3408"></a><tt class="py-lineno">3408</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3409"></a><tt class="py-lineno">3409</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_getset"></a><div id="_ETreeTestCaseBase.test_qname_attribute_getset-def"><a name="L3410"></a><tt class="py-lineno">3410</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_getset-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_getset');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-expanded"><a name="L3411"></a><tt class="py-lineno">3411</tt> <tt class="py-line"> <tt id="link-3242" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3282', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3283" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3283', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3454"></a><tt class="py-lineno">3454</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3455"></a><tt class="py-lineno">3455</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3456"></a><tt class="py-lineno">3456</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3457"></a><tt class="py-lineno">3457</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3458"></a><tt class="py-lineno">3458</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_getset"></a><div id="_ETreeTestCaseBase.test_qname_attribute_getset-def"><a name="L3459"></a><tt class="py-lineno">3459</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_getset-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_getset');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-expanded"><a name="L3460"></a><tt class="py-lineno">3460</tt> <tt class="py-line"> <tt id="link-3284" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3242', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3284', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3285" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3243', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3412"></a><tt class="py-lineno">3412</tt> <tt class="py-line"> <tt id="link-3244" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3244', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3285', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3461"></a><tt class="py-lineno">3461</tt> <tt class="py-line"> <tt id="link-3286" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3286', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3287" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3245', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3246', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3413"></a><tt class="py-lineno">3413</tt> <tt class="py-line"> </tt>
-<a name="L3414"></a><tt class="py-lineno">3414</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3287', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3288', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3462"></a><tt class="py-lineno">3462</tt> <tt class="py-line"> </tt>
+<a name="L3463"></a><tt class="py-lineno">3463</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3289" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3247', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3289', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3290" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3248', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3249" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3249', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3415"></a><tt class="py-lineno">3415</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3250" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3290', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3291" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3291', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3464"></a><tt class="py-lineno">3464</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3292" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3250', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt id="link-3251" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3251', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3416"></a><tt class="py-lineno">3416</tt> <tt class="py-line"> </tt>
-<a name="L3417"></a><tt class="py-lineno">3417</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3252" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3292', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt id="link-3293" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3293', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3465"></a><tt class="py-lineno">3465</tt> <tt class="py-line"> </tt>
+<a name="L3466"></a><tt class="py-lineno">3466</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3252', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt id="link-3253" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3253', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3418"></a><tt class="py-lineno">3418</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3254" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3294', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt id="link-3295" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3295', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3467"></a><tt class="py-lineno">3467</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3254', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3419"></a><tt class="py-lineno">3419</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attrib"></a><div id="_ETreeTestCaseBase.test_qname_attrib-def"><a name="L3420"></a><tt class="py-lineno">3420</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib-expanded"><a name="L3421"></a><tt class="py-lineno">3421</tt> <tt class="py-line"> <tt id="link-3255" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3296', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3468"></a><tt class="py-lineno">3468</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attrib"></a><div id="_ETreeTestCaseBase.test_qname_attrib-def"><a name="L3469"></a><tt class="py-lineno">3469</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib-expanded"><a name="L3470"></a><tt class="py-lineno">3470</tt> <tt class="py-line"> <tt id="link-3297" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3255', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3256" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3297', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3298" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3256', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3422"></a><tt class="py-lineno">3422</tt> <tt class="py-line"> <tt id="link-3257" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3257', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3258" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3298', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3471"></a><tt class="py-lineno">3471</tt> <tt class="py-line"> <tt id="link-3299" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3299', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3300" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3258', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3259', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</tt> <tt class="py-line"> </tt>
-<a name="L3424"></a><tt class="py-lineno">3424</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3260" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3300', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3301" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3301', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3472"></a><tt class="py-lineno">3472</tt> <tt class="py-line"> </tt>
+<a name="L3473"></a><tt class="py-lineno">3473</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3260', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3302', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3261', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3262" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3262', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3425"></a><tt class="py-lineno">3425</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3303', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3304" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3304', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3474"></a><tt class="py-lineno">3474</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3263', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3264" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3264', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
-<a name="L3426"></a><tt class="py-lineno">3426</tt> <tt class="py-line"> </tt>
-<a name="L3427"></a><tt class="py-lineno">3427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3265" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3305', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3306" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3306', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
+<a name="L3475"></a><tt class="py-lineno">3475</tt> <tt class="py-line"> </tt>
+<a name="L3476"></a><tt class="py-lineno">3476</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3307" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3265', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3266" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3266', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3428"></a><tt class="py-lineno">3428</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3267" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3307', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3308" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3308', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3477"></a><tt class="py-lineno">3477</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3309" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3267', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3268" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3309', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3310" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3268', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt id="link-3269" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3269', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3429"></a><tt class="py-lineno">3429</tt> <tt class="py-line"> </tt>
-<a name="L3430"></a><tt class="py-lineno">3430</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3270" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3310', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt id="link-3311" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3311', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3478"></a><tt class="py-lineno">3478</tt> <tt class="py-line"> </tt>
+<a name="L3479"></a><tt class="py-lineno">3479</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3312" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3270', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3431"></a><tt class="py-lineno">3431</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3271" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3312', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3313" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3271', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3272" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3313', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3272', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3432"></a><tt class="py-lineno">3432</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-def"><a name="L3433"></a><tt class="py-lineno">3433</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-expanded"><a name="L3434"></a><tt class="py-lineno">3434</tt> <tt class="py-line"> <tt id="link-3273" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3314', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3481"></a><tt class="py-lineno">3481</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-def"><a name="L3482"></a><tt class="py-lineno">3482</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-expanded"><a name="L3483"></a><tt class="py-lineno">3483</tt> <tt class="py-line"> <tt id="link-3315" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3273', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3274" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3315', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3274', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3435"></a><tt class="py-lineno">3435</tt> <tt class="py-line"> <tt id="link-3275" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3275', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3276" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3316', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3484"></a><tt class="py-lineno">3484</tt> <tt class="py-line"> <tt id="link-3317" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3317', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3318" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3276', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3277', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3436"></a><tt class="py-lineno">3436</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3278" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3318', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3319" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3319', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3485"></a><tt class="py-lineno">3485</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3320" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3278', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3279" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3320', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3321" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3279', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3280" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3280', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3437"></a><tt class="py-lineno">3437</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3321', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3322" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3322', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3486"></a><tt class="py-lineno">3486</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3281', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt id="link-3282" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3282', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">,</tt> <tt id="link-3283" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3283', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt> <tt class="py-line"> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3284" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3284', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3440"></a><tt class="py-lineno">3440</tt> <tt class="py-line"> <tt id="link-3285" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3285', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3442"></a><tt class="py-lineno">3442</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_resolve_new"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-def"><a name="L3443"></a><tt class="py-lineno">3443</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve_new');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-expanded"><a name="L3444"></a><tt class="py-lineno">3444</tt> <tt class="py-line"> <tt id="link-3286" class="py-name"><a title="lxml.etree
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3323', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt id="link-3324" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3324', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">,</tt> <tt id="link-3325" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3325', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3487"></a><tt class="py-lineno">3487</tt> <tt class="py-line"> </tt>
+<a name="L3488"></a><tt class="py-lineno">3488</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3326', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3489"></a><tt class="py-lineno">3489</tt> <tt class="py-line"> <tt id="link-3327" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3327', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3490"></a><tt class="py-lineno">3490</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3491"></a><tt class="py-lineno">3491</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_resolve_new"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-def"><a name="L3492"></a><tt class="py-lineno">3492</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve_new');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-expanded"><a name="L3493"></a><tt class="py-lineno">3493</tt> <tt class="py-line"> <tt id="link-3328" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3286', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3287" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3328', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3287', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3445"></a><tt class="py-lineno">3445</tt> <tt class="py-line"> <tt id="link-3288" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3288', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3289" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3329', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3494"></a><tt class="py-lineno">3494</tt> <tt class="py-line"> <tt id="link-3330" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3330', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3331" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3289', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3290" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3290', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3291" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3331', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3332" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3332', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3495"></a><tt class="py-lineno">3495</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3333" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3291', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3292" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3333', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3292', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3447"></a><tt class="py-lineno">3447</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3293" class="py-name"><a title="lxml.etree._Element.set
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3334', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3496"></a><tt class="py-lineno">3496</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3335" class="py-name"><a title="lxml.etree._Element.set
lxml.etree._XSLTProcessingInstruction.set
lxml.html.HtmlElement.set
-lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3293', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-3294" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3294', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3448"></a><tt class="py-lineno">3448</tt> <tt class="py-line"> </tt>
-<a name="L3449"></a><tt class="py-lineno">3449</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3295" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3295', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3450"></a><tt class="py-lineno">3450</tt> <tt class="py-line"> <tt id="link-3296" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3296', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="http://myns" a="ns0:a"></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3451"></a><tt class="py-lineno">3451</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3452"></a><tt class="py-lineno">3452</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attrib_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-def"><a name="L3453"></a><tt class="py-lineno">3453</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib_resolve');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-expanded"><a name="L3454"></a><tt class="py-lineno">3454</tt> <tt class="py-line"> <tt id="link-3297" class="py-name"><a title="lxml.etree
+lxml.html.HtmlMixin.set" class="py-name" href="#" onclick="return doclink('link-3335', 'set', 'link-416');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-3336" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3336', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3497"></a><tt class="py-lineno">3497</tt> <tt class="py-line"> </tt>
+<a name="L3498"></a><tt class="py-lineno">3498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3337', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3499"></a><tt class="py-lineno">3499</tt> <tt class="py-line"> <tt id="link-3338" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3338', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<a xmlns:ns0="http://myns" a="ns0:a"></a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3500"></a><tt class="py-lineno">3500</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3501"></a><tt class="py-lineno">3501</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attrib_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-def"><a name="L3502"></a><tt class="py-lineno">3502</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib_resolve');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-expanded"><a name="L3503"></a><tt class="py-lineno">3503</tt> <tt class="py-line"> <tt id="link-3339" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3297', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3298" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3339', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3340" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3298', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3455"></a><tt class="py-lineno">3455</tt> <tt class="py-line"> <tt id="link-3299" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3299', 'qname', 'link-3225');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3300" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3340', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3504"></a><tt class="py-lineno">3504</tt> <tt class="py-line"> <tt id="link-3341" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3341', 'qname', 'link-3267');">qname</a></tt> <tt class="py-op">=</tt> <tt id="link-3342" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3300', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3301" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3301', 'QName', 'link-3227');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3456"></a><tt class="py-lineno">3456</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3342', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3343', 'QName', 'link-3269');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt> <tt class="py-line"> <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3344" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3302', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3344', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3303', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3304" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3304', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3457"></a><tt class="py-lineno">3457</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3345', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt id="link-3346" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3346', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3305', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3306" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3306', 'qname', 'link-3225');">qname</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-3307" class="py-name"><a title="lxml.tests.selftest.qname
-lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3307', 'qname', 'link-3225');">qname</a></tt> </tt>
-<a name="L3458"></a><tt class="py-lineno">3458</tt> <tt class="py-line"> </tt>
-<a name="L3459"></a><tt class="py-lineno">3459</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3308" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3308', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3460"></a><tt class="py-lineno">3460</tt> <tt class="py-line"> <tt id="link-3309" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3309', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3461"></a><tt class="py-lineno">3461</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3462"></a><tt class="py-lineno">3462</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_version"></a><div id="_ETreeTestCaseBase.test_parser_version-def"><a name="L3463"></a><tt class="py-lineno">3463</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_version-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_version-expanded"><a name="L3464"></a><tt class="py-lineno">3464</tt> <tt class="py-line"> <tt id="link-3310" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3347', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">[</tt><tt id="link-3348" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3348', 'qname', 'link-3267');">qname</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-3349" class="py-name"><a title="lxml.tests.selftest.qname
+lxml.tests.selftest2.qname" class="py-name" href="#" onclick="return doclink('link-3349', 'qname', 'link-3267');">qname</a></tt> </tt>
+<a name="L3507"></a><tt class="py-lineno">3507</tt> <tt class="py-line"> </tt>
+<a name="L3508"></a><tt class="py-lineno">3508</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3350" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3350', 'assertXML', 'link-214');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3509"></a><tt class="py-lineno">3509</tt> <tt class="py-line"> <tt id="link-3351" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3351', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"></ns0:a>'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3510"></a><tt class="py-lineno">3510</tt> <tt class="py-line"> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3511"></a><tt class="py-lineno">3511</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_version"></a><div id="_ETreeTestCaseBase.test_parser_version-def"><a name="L3512"></a><tt class="py-lineno">3512</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_version-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_version');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_version-expanded"><a name="L3513"></a><tt class="py-lineno">3513</tt> <tt class="py-line"> <tt id="link-3352" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3310', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3311" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3352', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3353" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3311', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3465"></a><tt class="py-lineno">3465</tt> <tt class="py-line"> <tt id="link-3312" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3312', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3313" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3353', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3514"></a><tt class="py-lineno">3514</tt> <tt class="py-line"> <tt id="link-3354" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3354', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3355" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3313', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3355', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3356" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3314', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3466"></a><tt class="py-lineno">3466</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3315" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3315', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3316" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3316', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"version"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3467"></a><tt class="py-lineno">3467</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree 1.3+, cET</tt> </tt>
-<a name="L3468"></a><tt class="py-lineno">3468</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"[^ ]+ [0-9.]+"</tt><tt class="py-op">,</tt> <tt id="link-3317" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3317', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3318" class="py-name" targets="Variable lxml.etree.iterparse.version=lxml.etree.iterparse-class.html#version"><a title="lxml.etree.iterparse.version" class="py-name" href="#" onclick="return doclink('link-3318', 'version', 'link-3318');">version</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3469"></a><tt class="py-lineno">3469</tt> <tt class="py-line"> </tt>
-<a name="L3470"></a><tt class="py-lineno">3470</tt> <tt class="py-line"> <tt class="py-comment"># feed parser interface</tt> </tt>
-<a name="L3471"></a><tt class="py-lineno">3471</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_bytes"></a><div id="_ETreeTestCaseBase.test_feed_parser_bytes-def"><a name="L3472"></a><tt class="py-lineno">3472</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_bytes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_bytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-expanded"><a name="L3473"></a><tt class="py-lineno">3473</tt> <tt class="py-line"> <tt id="link-3319" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3319', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3356', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3515"></a><tt class="py-lineno">3515</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3357" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3357', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3358" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3358', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"version"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3516"></a><tt class="py-lineno">3516</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree 1.3+, cET</tt> </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"[^ ]+ [0-9.]+"</tt><tt class="py-op">,</tt> <tt id="link-3359" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3359', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name" targets="Variable lxml.etree.iterparse.version=lxml.etree.iterparse-class.html#version"><a title="lxml.etree.iterparse.version" class="py-name" href="#" onclick="return doclink('link-3360', 'version', 'link-3360');">version</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3518"></a><tt class="py-lineno">3518</tt> <tt class="py-line"> </tt>
+<a name="L3519"></a><tt class="py-lineno">3519</tt> <tt class="py-line"> <tt class="py-comment"># feed parser interface</tt> </tt>
+<a name="L3520"></a><tt class="py-lineno">3520</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_bytes"></a><div id="_ETreeTestCaseBase.test_feed_parser_bytes-def"><a name="L3521"></a><tt class="py-lineno">3521</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_bytes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_bytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-expanded"><a name="L3522"></a><tt class="py-lineno">3522</tt> <tt class="py-line"> <tt id="link-3361" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3361', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3320', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3474"></a><tt class="py-lineno">3474</tt> <tt class="py-line"> </tt>
-<a name="L3475"></a><tt class="py-lineno">3475</tt> <tt class="py-line"> <tt id="link-3321" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3321', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3322', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3323" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3323', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3476"></a><tt class="py-lineno">3476</tt> <tt class="py-line"> <tt id="link-3324" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3324', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3325', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3326" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3326', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3477"></a><tt class="py-lineno">3477</tt> <tt class="py-line"> <tt id="link-3327" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3327', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3328" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3328', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3329" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3329', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot><'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3478"></a><tt class="py-lineno">3478</tt> <tt class="py-line"> <tt id="link-3330" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3330', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3331" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3331', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3332" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3332', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3479"></a><tt class="py-lineno">3479</tt> <tt class="py-line"> <tt id="link-3333" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3333', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3334', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3335', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'></root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3480"></a><tt class="py-lineno">3480</tt> <tt class="py-line"> <tt id="link-3336" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3336', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3337', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3338" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3338', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</tt> <tt class="py-line"> </tt>
-<a name="L3482"></a><tt class="py-lineno">3482</tt> <tt class="py-line"> <tt id="link-3339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3339', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3340" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3340', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3341" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3362', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3523"></a><tt class="py-lineno">3523</tt> <tt class="py-line"> </tt>
+<a name="L3524"></a><tt class="py-lineno">3524</tt> <tt class="py-line"> <tt id="link-3363" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3363', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3364" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3364', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3365', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3525"></a><tt class="py-lineno">3525</tt> <tt class="py-line"> <tt id="link-3366" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3366', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3367" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3367', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3368" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3368', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3526"></a><tt class="py-lineno">3526</tt> <tt class="py-line"> <tt id="link-3369" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3369', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3370', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3371" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3371', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot><'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3527"></a><tt class="py-lineno">3527</tt> <tt class="py-line"> <tt id="link-3372" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3372', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3373', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3374" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3374', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3528"></a><tt class="py-lineno">3528</tt> <tt class="py-line"> <tt id="link-3375" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3375', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3376', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3377', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'></root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt> <tt class="py-line"> <tt id="link-3378" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3378', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3379" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3379', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3380" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3380', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3530"></a><tt class="py-lineno">3530</tt> <tt class="py-line"> </tt>
+<a name="L3531"></a><tt class="py-lineno">3531</tt> <tt class="py-line"> <tt id="link-3381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3381', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3382" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3382', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3341', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3483"></a><tt class="py-lineno">3483</tt> <tt class="py-line"> </tt>
-<a name="L3484"></a><tt class="py-lineno">3484</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3342', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3383', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3532"></a><tt class="py-lineno">3532</tt> <tt class="py-line"> </tt>
+<a name="L3533"></a><tt class="py-lineno">3533</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3384', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3385" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3343', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3485"></a><tt class="py-lineno">3485</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3344" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3344', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3385', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3534"></a><tt class="py-lineno">3534</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3386', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3387" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3345', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3346', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3387', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3535"></a><tt class="py-lineno">3535</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3388" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3388', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3389" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3347', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3487"></a><tt class="py-lineno">3487</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_unicode"></a><div id="_ETreeTestCaseBase.test_feed_parser_unicode-def"><a name="L3488"></a><tt class="py-lineno">3488</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_unicode-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_unicode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-expanded"><a name="L3489"></a><tt class="py-lineno">3489</tt> <tt class="py-line"> <tt id="link-3348" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3348', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree.XMLParser
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3389', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3536"></a><tt class="py-lineno">3536</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_unicode"></a><div id="_ETreeTestCaseBase.test_feed_parser_unicode-def"><a name="L3537"></a><tt class="py-lineno">3537</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_unicode-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_unicode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-expanded"><a name="L3538"></a><tt class="py-lineno">3538</tt> <tt class="py-line"> <tt id="link-3390" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3390', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3349', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3490"></a><tt class="py-lineno">3490</tt> <tt class="py-line"> </tt>
-<a name="L3491"></a><tt class="py-lineno">3491</tt> <tt class="py-line"> <tt id="link-3350" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3350', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3351" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3351', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3352" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3352', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3492"></a><tt class="py-lineno">3492</tt> <tt class="py-line"> <tt id="link-3353" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3353', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3354', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3355" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3355', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot><'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt> <tt class="py-line"> <tt id="link-3356" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3356', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3357', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3358" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3358', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3494"></a><tt class="py-lineno">3494</tt> <tt class="py-line"> <tt id="link-3359" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3359', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3360', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3361" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3361', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'></root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3495"></a><tt class="py-lineno">3495</tt> <tt class="py-line"> <tt id="link-3362" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3362', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3363', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3364" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3364', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3496"></a><tt class="py-lineno">3496</tt> <tt class="py-line"> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt> <tt class="py-line"> <tt id="link-3365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3365', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3366" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3366', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3367" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3391', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3539"></a><tt class="py-lineno">3539</tt> <tt class="py-line"> </tt>
+<a name="L3540"></a><tt class="py-lineno">3540</tt> <tt class="py-line"> <tt id="link-3392" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3392', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3393" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3393', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3394" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3394', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'<ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3541"></a><tt class="py-lineno">3541</tt> <tt class="py-line"> <tt id="link-3395" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3395', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3396" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3396', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3397" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3397', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot><'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3542"></a><tt class="py-lineno">3542</tt> <tt class="py-line"> <tt id="link-3398" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3398', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3399" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3399', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3400" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3400', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3543"></a><tt class="py-lineno">3543</tt> <tt class="py-line"> <tt id="link-3401" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3401', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3402" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3402', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3403" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3403', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'></root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3544"></a><tt class="py-lineno">3544</tt> <tt class="py-line"> <tt id="link-3404" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3404', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3405', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3406" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3406', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'>'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3545"></a><tt class="py-lineno">3545</tt> <tt class="py-line"> </tt>
+<a name="L3546"></a><tt class="py-lineno">3546</tt> <tt class="py-line"> <tt id="link-3407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3407', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3408" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3408', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3367', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt> <tt class="py-line"> </tt>
-<a name="L3499"></a><tt class="py-lineno">3499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3368', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3409', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3547"></a><tt class="py-lineno">3547</tt> <tt class="py-line"> </tt>
+<a name="L3548"></a><tt class="py-lineno">3548</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3410', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3411" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3369', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3500"></a><tt class="py-lineno">3500</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3370" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3370', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3371" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3411', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3549"></a><tt class="py-lineno">3549</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3412', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3413" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3371', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3501"></a><tt class="py-lineno">3501</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3372', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3413', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3414" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3414', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree._Attrib.get
lxml.etree._Element.get
lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3373', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3502"></a><tt class="py-lineno">3502</tt> <tt class="py-line"> </tt>
-<a name="L3503"></a><tt class="py-lineno">3503</tt> <tt class="py-line"> <tt id="link-3374" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3374', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_empty'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_close_empty"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-def"><a name="L3504"></a><tt class="py-lineno">3504</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-expanded"><a name="L3505"></a><tt class="py-lineno">3505</tt> <tt class="py-line"> <tt id="link-3375" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3375', 'ParseError', 'link-2886');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3415', 'get', 'link-330');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3551"></a><tt class="py-lineno">3551</tt> <tt class="py-line"> </tt>
+<a name="L3552"></a><tt class="py-lineno">3552</tt> <tt class="py-line"> <tt id="link-3416" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3416', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_empty'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_close_empty"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-def"><a name="L3553"></a><tt class="py-lineno">3553</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-expanded"><a name="L3554"></a><tt class="py-lineno">3554</tt> <tt class="py-line"> <tt id="link-3417" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3417', 'ParseError', 'link-2928');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3418" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3376', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3377" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3377', 'ParseError', 'link-2886');">ParseError</a></tt> </tt>
-<a name="L3506"></a><tt class="py-lineno">3506</tt> <tt class="py-line"> <tt id="link-3378" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3378', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3379" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3418', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3419', 'ParseError', 'link-2928');">ParseError</a></tt> </tt>
+<a name="L3555"></a><tt class="py-lineno">3555</tt> <tt class="py-line"> <tt id="link-3420" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3420', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3379', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3507"></a><tt class="py-lineno">3507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3380', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3381" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3381', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3382" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3421', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3556"></a><tt class="py-lineno">3556</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3422" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3422', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3423" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3423', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3382', 'close', 'link-2771');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3508"></a><tt class="py-lineno">3508</tt> <tt class="py-line"> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</tt> <tt class="py-line"> <tt id="link-3383" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3383', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_incomplete'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-def"><a name="L3510"></a><tt class="py-lineno">3510</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_incomplete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-expanded"><a name="L3511"></a><tt class="py-lineno">3511</tt> <tt class="py-line"> <tt id="link-3384" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3384', 'ParseError', 'link-2886');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3385" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3424', 'close', 'link-2813');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3557"></a><tt class="py-lineno">3557</tt> <tt class="py-line"> </tt>
+<a name="L3558"></a><tt class="py-lineno">3558</tt> <tt class="py-line"> <tt id="link-3425" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3425', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_incomplete'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-def"><a name="L3559"></a><tt class="py-lineno">3559</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_incomplete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-expanded"><a name="L3560"></a><tt class="py-lineno">3560</tt> <tt class="py-line"> <tt id="link-3426" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3426', 'ParseError', 'link-2928');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3385', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3386', 'ParseError', 'link-2886');">ParseError</a></tt> </tt>
-<a name="L3512"></a><tt class="py-lineno">3512</tt> <tt class="py-line"> <tt id="link-3387" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3387', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3388" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3427', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3428" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3428', 'ParseError', 'link-2928');">ParseError</a></tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt> <tt class="py-line"> <tt id="link-3429" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3429', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3430" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3388', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3513"></a><tt class="py-lineno">3513</tt> <tt class="py-line"> </tt>
-<a name="L3514"></a><tt class="py-lineno">3514</tt> <tt class="py-line"> <tt id="link-3389" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3389', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3390" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3390', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L3515"></a><tt class="py-lineno">3515</tt> <tt class="py-line"> <tt id="link-3391" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3391', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3392" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3392', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3516"></a><tt class="py-lineno">3516</tt> <tt class="py-line"> </tt>
-<a name="L3517"></a><tt class="py-lineno">3517</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3393" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3393', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3394" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3394', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3430', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3562"></a><tt class="py-lineno">3562</tt> <tt class="py-line"> </tt>
+<a name="L3563"></a><tt class="py-lineno">3563</tt> <tt class="py-line"> <tt id="link-3431" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3431', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3432" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3432', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L3564"></a><tt class="py-lineno">3564</tt> <tt class="py-line"> <tt id="link-3433" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3433', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3434" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3434', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3565"></a><tt class="py-lineno">3565</tt> <tt class="py-line"> </tt>
+<a name="L3566"></a><tt class="py-lineno">3566</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3435" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3435', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3436', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3437" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3395', 'close', 'link-2771');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3518"></a><tt class="py-lineno">3518</tt> <tt class="py-line"> </tt>
-<a name="L3519"></a><tt class="py-lineno">3519</tt> <tt class="py-line"> <tt id="link-3396" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3396', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_broken'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_broken"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-def"><a name="L3520"></a><tt class="py-lineno">3520</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_broken-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_broken');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-expanded"><a name="L3521"></a><tt class="py-lineno">3521</tt> <tt class="py-line"> <tt id="link-3397" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3397', 'ParseError', 'link-2886');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3437', 'close', 'link-2813');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3567"></a><tt class="py-lineno">3567</tt> <tt class="py-line"> </tt>
+<a name="L3568"></a><tt class="py-lineno">3568</tt> <tt class="py-line"> <tt id="link-3438" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3438', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_broken'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_broken"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-def"><a name="L3569"></a><tt class="py-lineno">3569</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_broken-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_broken');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-expanded"><a name="L3570"></a><tt class="py-lineno">3570</tt> <tt class="py-line"> <tt id="link-3439" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3439', 'ParseError', 'link-2928');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3440" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3398', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3399" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3399', 'ParseError', 'link-2886');">ParseError</a></tt> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt> <tt class="py-line"> <tt id="link-3400" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3400', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3440', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3441', 'ParseError', 'link-2928');">ParseError</a></tt> </tt>
+<a name="L3571"></a><tt class="py-lineno">3571</tt> <tt class="py-line"> <tt id="link-3442" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3442', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3443" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3401', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</tt> <tt class="py-line"> </tt>
-<a name="L3524"></a><tt class="py-lineno">3524</tt> <tt class="py-line"> <tt id="link-3402" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3402', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3403" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3403', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L3525"></a><tt class="py-lineno">3525</tt> <tt class="py-line"> <tt id="link-3404" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3404', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3405', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3526"></a><tt class="py-lineno">3526</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3527"></a><tt class="py-lineno">3527</tt> <tt class="py-line"> <tt id="link-3406" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3406', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3407" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3407', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<><><><><><><'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-3408" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3408', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3529"></a><tt class="py-lineno">3529</tt> <tt class="py-line"> <tt class="py-comment"># can raise, but not required before close()</tt> </tt>
-<a name="L3530"></a><tt class="py-lineno">3530</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L3531"></a><tt class="py-lineno">3531</tt> <tt class="py-line"> </tt>
-<a name="L3532"></a><tt class="py-lineno">3532</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3409', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3410" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3410', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3411" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3443', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt> <tt class="py-line"> </tt>
+<a name="L3573"></a><tt class="py-lineno">3573</tt> <tt class="py-line"> <tt id="link-3444" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3444', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3445" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3445', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L3574"></a><tt class="py-lineno">3574</tt> <tt class="py-line"> <tt id="link-3446" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3446', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3447" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3447', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?><ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3575"></a><tt class="py-lineno">3575</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3576"></a><tt class="py-lineno">3576</tt> <tt class="py-line"> <tt id="link-3448" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3448', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3449" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3449', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<><><><><><><'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3577"></a><tt class="py-lineno">3577</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-3450" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3450', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3578"></a><tt class="py-lineno">3578</tt> <tt class="py-line"> <tt class="py-comment"># can raise, but not required before close()</tt> </tt>
+<a name="L3579"></a><tt class="py-lineno">3579</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L3580"></a><tt class="py-lineno">3580</tt> <tt class="py-line"> </tt>
+<a name="L3581"></a><tt class="py-lineno">3581</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3451" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3451', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3452" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3452', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3453" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3411', 'close', 'link-2771');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3533"></a><tt class="py-lineno">3533</tt> <tt class="py-line"> </tt>
-<a name="L3534"></a><tt class="py-lineno">3534</tt> <tt class="py-line"> <tt id="link-3412" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3412', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_position'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_position"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_position-def"><a name="L3535"></a><tt class="py-lineno">3535</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_position-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_position');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-expanded"><a name="L3536"></a><tt class="py-lineno">3536</tt> <tt class="py-line"> <tt id="link-3413" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3413', 'ParseError', 'link-2886');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3414" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3453', 'close', 'link-2813');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3582"></a><tt class="py-lineno">3582</tt> <tt class="py-line"> </tt>
+<a name="L3583"></a><tt class="py-lineno">3583</tt> <tt class="py-line"> <tt id="link-3454" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3454', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_position'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_position"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_position-def"><a name="L3584"></a><tt class="py-lineno">3584</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_position-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_position');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-expanded"><a name="L3585"></a><tt class="py-lineno">3585</tt> <tt class="py-line"> <tt id="link-3455" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3455', 'ParseError', 'link-2928');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3456" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3414', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3415', 'ParseError', 'link-2886');">ParseError</a></tt> </tt>
-<a name="L3537"></a><tt class="py-lineno">3537</tt> <tt class="py-line"> <tt id="link-3416" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3416', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3417" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3456', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3457" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3457', 'ParseError', 'link-2928');">ParseError</a></tt> </tt>
+<a name="L3586"></a><tt class="py-lineno">3586</tt> <tt class="py-line"> <tt id="link-3458" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3458', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3417', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3538"></a><tt class="py-lineno">3538</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3539"></a><tt class="py-lineno">3539</tt> <tt class="py-line"> <tt id="link-3418" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3418', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3459', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3587"></a><tt class="py-lineno">3587</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3588"></a><tt class="py-lineno">3588</tt> <tt class="py-line"> <tt id="link-3460" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3460', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3461" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3419', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3540"></a><tt class="py-lineno">3540</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-3420" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3420', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
-<a name="L3543"></a><tt class="py-lineno">3543</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
-<a name="L3544"></a><tt class="py-lineno">3544</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name" targets="Variable lxml.etree.ParseError.position=lxml.etree.ParseError-class.html#position"><a title="lxml.etree.ParseError.position" class="py-name" href="#" onclick="return doclink('link-3421', 'position', 'link-3421');">position</a></tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3545"></a><tt class="py-lineno">3545</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3422" class="py-name"><a title="lxml.etree.ParseError.position" class="py-name" href="#" onclick="return doclink('link-3422', 'position', 'link-3421');">position</a></tt> <tt class="py-op">>=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3546"></a><tt class="py-lineno">3546</tt> <tt class="py-line"> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt> <tt class="py-line"> <tt class="py-comment"># parser target interface</tt> </tt>
-<a name="L3548"></a><tt class="py-lineno">3548</tt> <tt class="py-line"> </tt>
-<a name="L3549"></a><tt class="py-lineno">3549</tt> <tt class="py-line"> <tt id="link-3423" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3423', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_property'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_property"></a><div id="_ETreeTestCaseBase.test_parser_target_property-def"><a name="L3550"></a><tt class="py-lineno">3550</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_property-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_property');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_property-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_property-expanded"><a name="L3551"></a><tt class="py-lineno">3551</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3552"></a><tt class="py-lineno">3552</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L3553"></a><tt class="py-lineno">3553</tt> <tt class="py-line"> </tt>
-<a name="L3554"></a><tt class="py-lineno">3554</tt> <tt class="py-line"> <tt id="link-3424" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3424', 'target', 'link-3424');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3555"></a><tt class="py-lineno">3555</tt> <tt class="py-line"> <tt id="link-3425" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3425', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3461', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3589"></a><tt class="py-lineno">3589</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-3462" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3462', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3590"></a><tt class="py-lineno">3590</tt> <tt class="py-line"> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L3591"></a><tt class="py-lineno">3591</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
+<a name="L3592"></a><tt class="py-lineno">3592</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
+<a name="L3593"></a><tt class="py-lineno">3593</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3463" class="py-name" targets="Variable lxml.etree.ParseError.position=lxml.etree.ParseError-class.html#position"><a title="lxml.etree.ParseError.position" class="py-name" href="#" onclick="return doclink('link-3463', 'position', 'link-3463');">position</a></tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3594"></a><tt class="py-lineno">3594</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3464" class="py-name"><a title="lxml.etree.ParseError.position" class="py-name" href="#" onclick="return doclink('link-3464', 'position', 'link-3463');">position</a></tt> <tt class="py-op">>=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3595"></a><tt class="py-lineno">3595</tt> <tt class="py-line"> </tt>
+<a name="L3596"></a><tt class="py-lineno">3596</tt> <tt class="py-line"> <tt class="py-comment"># parser target interface</tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt> <tt class="py-line"> </tt>
+<a name="L3598"></a><tt class="py-lineno">3598</tt> <tt class="py-line"> <tt id="link-3465" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3465', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_property'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_property"></a><div id="_ETreeTestCaseBase.test_parser_target_property-def"><a name="L3599"></a><tt class="py-lineno">3599</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_property-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_property');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_property-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_property-expanded"><a name="L3600"></a><tt class="py-lineno">3600</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3601"></a><tt class="py-lineno">3601</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L3602"></a><tt class="py-lineno">3602</tt> <tt class="py-line"> </tt>
+<a name="L3603"></a><tt class="py-lineno">3603</tt> <tt class="py-line"> <tt id="link-3466" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3466', 'target', 'link-3466');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3604"></a><tt class="py-lineno">3604</tt> <tt class="py-line"> <tt id="link-3467" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3467', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3468" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3426', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3427" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3427', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt id="link-3428" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3428', 'target', 'link-3424');">target</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3556"></a><tt class="py-lineno">3556</tt> <tt class="py-line"> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3429" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3429', 'target', 'link-3424');">target</a></tt><tt class="py-op">,</tt> <tt id="link-3430" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3430', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3431" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3431', 'target', 'link-3424');">target</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3558"></a><tt class="py-lineno">3558</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_tag"></a><div id="_ETreeTestCaseBase.test_parser_target_tag-def"><a name="L3559"></a><tt class="py-lineno">3559</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_tag-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_tag');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_tag-expanded"><a name="L3560"></a><tt class="py-lineno">3560</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3561"></a><tt class="py-lineno">3561</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
-<a name="L3562"></a><tt class="py-lineno">3562</tt> <tt class="py-line"> </tt>
-<a name="L3563"></a><tt class="py-lineno">3563</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3564"></a><tt class="py-lineno">3564</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3565"></a><tt class="py-lineno">3565</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3566"></a><tt class="py-lineno">3566</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3432" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3432', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3567"></a><tt class="py-lineno">3567</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-3433" class="py-name"><a title="lxml.etree._Element.attrib
-lxml.etree._ProcessingInstruction.attrib
-lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3433', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3568"></a><tt class="py-lineno">3568</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3434" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3468', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3469" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3469', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt id="link-3470" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3470', 'target', 'link-3466');">target</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3605"></a><tt class="py-lineno">3605</tt> <tt class="py-line"> </tt>
+<a name="L3606"></a><tt class="py-lineno">3606</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3471', 'target', 'link-3466');">target</a></tt><tt class="py-op">,</tt> <tt id="link-3472" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3472', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3473', 'target', 'link-3466');">target</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3607"></a><tt class="py-lineno">3607</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_tag"></a><div id="_ETreeTestCaseBase.test_parser_target_tag-def"><a name="L3608"></a><tt class="py-lineno">3608</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_tag-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_tag');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_tag-expanded"><a name="L3609"></a><tt class="py-lineno">3609</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3610"></a><tt class="py-lineno">3610</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
+<a name="L3611"></a><tt class="py-lineno">3611</tt> <tt class="py-line"> </tt>
+<a name="L3612"></a><tt class="py-lineno">3612</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3613"></a><tt class="py-lineno">3613</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3614"></a><tt class="py-lineno">3614</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3615"></a><tt class="py-lineno">3615</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3474" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3474', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3616"></a><tt class="py-lineno">3616</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-3475" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.attrib
+lxml.tests.selftest2.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3475', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3617"></a><tt class="py-lineno">3617</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3476" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3434', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3569"></a><tt class="py-lineno">3569</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3570"></a><tt class="py-lineno">3570</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3435" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3435', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3476', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3618"></a><tt class="py-lineno">3618</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3619"></a><tt class="py-lineno">3619</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3477', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3620"></a><tt class="py-lineno">3620</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3478" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3436', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3572"></a><tt class="py-lineno">3572</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3573"></a><tt class="py-lineno">3573</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3574"></a><tt class="py-lineno">3574</tt> <tt class="py-line"> </tt>
-<a name="L3575"></a><tt class="py-lineno">3575</tt> <tt class="py-line"> <tt id="link-3437" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3437', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3438" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3478', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3621"></a><tt class="py-lineno">3621</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3622"></a><tt class="py-lineno">3622</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3623"></a><tt class="py-lineno">3623</tt> <tt class="py-line"> </tt>
+<a name="L3624"></a><tt class="py-lineno">3624</tt> <tt class="py-line"> <tt id="link-3479" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3479', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3438', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3439" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3439', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3576"></a><tt class="py-lineno">3576</tt> <tt class="py-line"> </tt>
-<a name="L3577"></a><tt class="py-lineno">3577</tt> <tt class="py-line"> <tt id="link-3440" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3440', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3441', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3578"></a><tt class="py-lineno">3578</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3442" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3442', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3443" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3480', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3481" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3481', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3625"></a><tt class="py-lineno">3625</tt> <tt class="py-line"> </tt>
+<a name="L3626"></a><tt class="py-lineno">3626</tt> <tt class="py-line"> <tt id="link-3482" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3482', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3483', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3627"></a><tt class="py-lineno">3627</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3484" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3484', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3443', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3579"></a><tt class="py-lineno">3579</tt> <tt class="py-line"> </tt>
-<a name="L3580"></a><tt class="py-lineno">3580</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3581"></a><tt class="py-lineno">3581</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3582"></a><tt class="py-lineno">3582</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_start"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-def"><a name="L3583"></a><tt class="py-lineno">3583</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-expanded"><a name="L3584"></a><tt class="py-lineno">3584</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3585"></a><tt class="py-lineno">3585</tt> <tt class="py-line"> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3587"></a><tt class="py-lineno">3587</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3588"></a><tt class="py-lineno">3588</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3589"></a><tt class="py-lineno">3589</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3444" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3444', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3590"></a><tt class="py-lineno">3590</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3445" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3485', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt> <tt class="py-line"> </tt>
+<a name="L3629"></a><tt class="py-lineno">3629</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3630"></a><tt class="py-lineno">3630</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3631"></a><tt class="py-lineno">3631</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_start"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-def"><a name="L3632"></a><tt class="py-lineno">3632</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-expanded"><a name="L3633"></a><tt class="py-lineno">3633</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3634"></a><tt class="py-lineno">3634</tt> <tt class="py-line"> </tt>
+<a name="L3635"></a><tt class="py-lineno">3635</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3636"></a><tt class="py-lineno">3636</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3638"></a><tt class="py-lineno">3638</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3486" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3486', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3639"></a><tt class="py-lineno">3639</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3487" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3445', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3591"></a><tt class="py-lineno">3591</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3592"></a><tt class="py-lineno">3592</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3593"></a><tt class="py-lineno">3593</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3446', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3594"></a><tt class="py-lineno">3594</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3447" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3487', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3640"></a><tt class="py-lineno">3640</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3641"></a><tt class="py-lineno">3641</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3488" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3488', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3643"></a><tt class="py-lineno">3643</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3489" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3447', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3595"></a><tt class="py-lineno">3595</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3596"></a><tt class="py-lineno">3596</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3597"></a><tt class="py-lineno">3597</tt> <tt class="py-line"> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt> <tt class="py-line"> <tt id="link-3448" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3448', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3449" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3489', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3644"></a><tt class="py-lineno">3644</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3646"></a><tt class="py-lineno">3646</tt> <tt class="py-line"> </tt>
+<a name="L3647"></a><tt class="py-lineno">3647</tt> <tt class="py-line"> <tt id="link-3490" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3490', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3491" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3449', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3450" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3450', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3599"></a><tt class="py-lineno">3599</tt> <tt class="py-line"> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3601"></a><tt class="py-lineno">3601</tt> <tt class="py-line"> <tt id="link-3451" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3451', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3452" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3452', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3602"></a><tt class="py-lineno">3602</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3603"></a><tt class="py-lineno">3603</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3453" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3453', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3604"></a><tt class="py-lineno">3604</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3605"></a><tt class="py-lineno">3605</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3606"></a><tt class="py-lineno">3606</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3454" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3454', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3607"></a><tt class="py-lineno">3607</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L3608"></a><tt class="py-lineno">3608</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3609"></a><tt class="py-lineno">3609</tt> <tt class="py-line"> <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
-<a name="L3610"></a><tt class="py-lineno">3610</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3611"></a><tt class="py-lineno">3611</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_end"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-def"><a name="L3612"></a><tt class="py-lineno">3612</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-expanded"><a name="L3613"></a><tt class="py-lineno">3613</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3614"></a><tt class="py-lineno">3614</tt> <tt class="py-line"> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3616"></a><tt class="py-lineno">3616</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3618"></a><tt class="py-lineno">3618</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3455" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3455', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3619"></a><tt class="py-lineno">3619</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3456" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3491', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3492" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3492', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3648"></a><tt class="py-lineno">3648</tt> <tt class="py-line"> </tt>
+<a name="L3649"></a><tt class="py-lineno">3649</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3650"></a><tt class="py-lineno">3650</tt> <tt class="py-line"> <tt id="link-3493" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3493', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3494" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3494', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3651"></a><tt class="py-lineno">3651</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3652"></a><tt class="py-lineno">3652</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3495" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3495', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3653"></a><tt class="py-lineno">3653</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3654"></a><tt class="py-lineno">3654</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3496', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3656"></a><tt class="py-lineno">3656</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L3657"></a><tt class="py-lineno">3657</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3658"></a><tt class="py-lineno">3658</tt> <tt class="py-line"> <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
+<a name="L3659"></a><tt class="py-lineno">3659</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3660"></a><tt class="py-lineno">3660</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_end"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-def"><a name="L3661"></a><tt class="py-lineno">3661</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_end');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-expanded"><a name="L3662"></a><tt class="py-lineno">3662</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3663"></a><tt class="py-lineno">3663</tt> <tt class="py-line"> </tt>
+<a name="L3664"></a><tt class="py-lineno">3664</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3665"></a><tt class="py-lineno">3665</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3666"></a><tt class="py-lineno">3666</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3667"></a><tt class="py-lineno">3667</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3497" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3497', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3668"></a><tt class="py-lineno">3668</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3456', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3620"></a><tt class="py-lineno">3620</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3621"></a><tt class="py-lineno">3621</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3457" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3457', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3622"></a><tt class="py-lineno">3622</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3458" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3498', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3669"></a><tt class="py-lineno">3669</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3670"></a><tt class="py-lineno">3670</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3499', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3500" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3458', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3623"></a><tt class="py-lineno">3623</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3624"></a><tt class="py-lineno">3624</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3625"></a><tt class="py-lineno">3625</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3626"></a><tt class="py-lineno">3626</tt> <tt class="py-line"> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt> <tt class="py-line"> <tt id="link-3459" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3459', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3500', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3672"></a><tt class="py-lineno">3672</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3673"></a><tt class="py-lineno">3673</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3674"></a><tt class="py-lineno">3674</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3675"></a><tt class="py-lineno">3675</tt> <tt class="py-line"> </tt>
+<a name="L3676"></a><tt class="py-lineno">3676</tt> <tt class="py-line"> <tt id="link-3501" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3501', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3502" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3460', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3461" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3461', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt> <tt class="py-line"> </tt>
-<a name="L3629"></a><tt class="py-lineno">3629</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3630"></a><tt class="py-lineno">3630</tt> <tt class="py-line"> <tt id="link-3462" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3462', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3463" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3463', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3631"></a><tt class="py-lineno">3631</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3632"></a><tt class="py-lineno">3632</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3464" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3464', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3633"></a><tt class="py-lineno">3633</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3634"></a><tt class="py-lineno">3634</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3635"></a><tt class="py-lineno">3635</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3636"></a><tt class="py-lineno">3636</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-def"><a name="L3637"></a><tt class="py-lineno">3637</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-expanded"><a name="L3638"></a><tt class="py-lineno">3638</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3639"></a><tt class="py-lineno">3639</tt> <tt class="py-line"> </tt>
-<a name="L3640"></a><tt class="py-lineno">3640</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3641"></a><tt class="py-lineno">3641</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3642"></a><tt class="py-lineno">3642</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3643"></a><tt class="py-lineno">3643</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3465', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3644"></a><tt class="py-lineno">3644</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3466" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3502', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3503" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3503', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3677"></a><tt class="py-lineno">3677</tt> <tt class="py-line"> </tt>
+<a name="L3678"></a><tt class="py-lineno">3678</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3679"></a><tt class="py-lineno">3679</tt> <tt class="py-line"> <tt id="link-3504" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3504', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3505', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3680"></a><tt class="py-lineno">3680</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3506" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3506', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3682"></a><tt class="py-lineno">3682</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3684"></a><tt class="py-lineno">3684</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3685"></a><tt class="py-lineno">3685</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-def"><a name="L3686"></a><tt class="py-lineno">3686</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-expanded"><a name="L3687"></a><tt class="py-lineno">3687</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3688"></a><tt class="py-lineno">3688</tt> <tt class="py-line"> </tt>
+<a name="L3689"></a><tt class="py-lineno">3689</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3690"></a><tt class="py-lineno">3690</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3691"></a><tt class="py-lineno">3691</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3692"></a><tt class="py-lineno">3692</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3507" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3507', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3693"></a><tt class="py-lineno">3693</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3508" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3466', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3645"></a><tt class="py-lineno">3645</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3646"></a><tt class="py-lineno">3646</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3467" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3467', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3647"></a><tt class="py-lineno">3647</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3468" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3508', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3694"></a><tt class="py-lineno">3694</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3695"></a><tt class="py-lineno">3695</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3509', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3696"></a><tt class="py-lineno">3696</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3510" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3468', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3648"></a><tt class="py-lineno">3648</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3649"></a><tt class="py-lineno">3649</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3650"></a><tt class="py-lineno">3650</tt> <tt class="py-line"> </tt>
-<a name="L3651"></a><tt class="py-lineno">3651</tt> <tt class="py-line"> <tt id="link-3469" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3469', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3510', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3697"></a><tt class="py-lineno">3697</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3698"></a><tt class="py-lineno">3698</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3699"></a><tt class="py-lineno">3699</tt> <tt class="py-line"> </tt>
+<a name="L3700"></a><tt class="py-lineno">3700</tt> <tt class="py-line"> <tt id="link-3511" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3511', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3512" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3470', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3471', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3652"></a><tt class="py-lineno">3652</tt> <tt class="py-line"> </tt>
-<a name="L3653"></a><tt class="py-lineno">3653</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3654"></a><tt class="py-lineno">3654</tt> <tt class="py-line"> <tt id="link-3472" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3472', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3473', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3655"></a><tt class="py-lineno">3655</tt> <tt class="py-line"> <tt id="link-3474" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3474', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3512', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3513" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3513', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3701"></a><tt class="py-lineno">3701</tt> <tt class="py-line"> </tt>
+<a name="L3702"></a><tt class="py-lineno">3702</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt> <tt class="py-line"> <tt id="link-3514" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3514', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3515', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3704"></a><tt class="py-lineno">3704</tt> <tt class="py-line"> <tt id="link-3516" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3516', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3475', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3656"></a><tt class="py-lineno">3656</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3657"></a><tt class="py-lineno">3657</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3476" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3476', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3658"></a><tt class="py-lineno">3658</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3659"></a><tt class="py-lineno">3659</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3660"></a><tt class="py-lineno">3660</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3661"></a><tt class="py-lineno">3661</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-def"><a name="L3662"></a><tt class="py-lineno">3662</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-expanded"><a name="L3663"></a><tt class="py-lineno">3663</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3664"></a><tt class="py-lineno">3664</tt> <tt class="py-line"> </tt>
-<a name="L3665"></a><tt class="py-lineno">3665</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3666"></a><tt class="py-lineno">3666</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3667"></a><tt class="py-lineno">3667</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3668"></a><tt class="py-lineno">3668</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3477', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3669"></a><tt class="py-lineno">3669</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3478" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3517', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3705"></a><tt class="py-lineno">3705</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3706"></a><tt class="py-lineno">3706</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3518" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3518', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3707"></a><tt class="py-lineno">3707</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3708"></a><tt class="py-lineno">3708</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3709"></a><tt class="py-lineno">3709</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3710"></a><tt class="py-lineno">3710</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-def"><a name="L3711"></a><tt class="py-lineno">3711</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-expanded"><a name="L3712"></a><tt class="py-lineno">3712</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3713"></a><tt class="py-lineno">3713</tt> <tt class="py-line"> </tt>
+<a name="L3714"></a><tt class="py-lineno">3714</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3715"></a><tt class="py-lineno">3715</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3716"></a><tt class="py-lineno">3716</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3717"></a><tt class="py-lineno">3717</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3519', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3718"></a><tt class="py-lineno">3718</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3520" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3478', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3670"></a><tt class="py-lineno">3670</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-IE"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3671"></a><tt class="py-lineno">3671</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3672"></a><tt class="py-lineno">3672</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3479" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3479', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3673"></a><tt class="py-lineno">3673</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3480" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3520', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3719"></a><tt class="py-lineno">3719</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-IE"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3720"></a><tt class="py-lineno">3720</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3721"></a><tt class="py-lineno">3721</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3521', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3522" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3480', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3674"></a><tt class="py-lineno">3674</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3675"></a><tt class="py-lineno">3675</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-VE"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3676"></a><tt class="py-lineno">3676</tt> <tt class="py-line"> </tt>
-<a name="L3677"></a><tt class="py-lineno">3677</tt> <tt class="py-line"> <tt id="link-3481" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3481', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3482" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3522', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3723"></a><tt class="py-lineno">3723</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3724"></a><tt class="py-lineno">3724</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-VE"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3725"></a><tt class="py-lineno">3725</tt> <tt class="py-line"> </tt>
+<a name="L3726"></a><tt class="py-lineno">3726</tt> <tt class="py-line"> <tt id="link-3523" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3523', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3482', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3483', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3678"></a><tt class="py-lineno">3678</tt> <tt class="py-line"> </tt>
-<a name="L3679"></a><tt class="py-lineno">3679</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3680"></a><tt class="py-lineno">3680</tt> <tt class="py-line"> <tt id="link-3484" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3484', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3485', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3681"></a><tt class="py-lineno">3681</tt> <tt class="py-line"> <tt id="link-3486" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3486', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3524', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3525" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3525', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3727"></a><tt class="py-lineno">3727</tt> <tt class="py-line"> </tt>
+<a name="L3728"></a><tt class="py-lineno">3728</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3729"></a><tt class="py-lineno">3729</tt> <tt class="py-line"> <tt id="link-3526" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3526', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3527', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3730"></a><tt class="py-lineno">3730</tt> <tt class="py-line"> <tt id="link-3528" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3528', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3487', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3682"></a><tt class="py-lineno">3682</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3683"></a><tt class="py-lineno">3683</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3488" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3529', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3731"></a><tt class="py-lineno">3731</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3732"></a><tt class="py-lineno">3732</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3488', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3684"></a><tt class="py-lineno">3684</tt> <tt class="py-line"> <tt class="py-comment"># we try not to swallow the initial exception in Py2</tt> </tt>
-<a name="L3685"></a><tt class="py-lineno">3685</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op"><</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L3686"></a><tt class="py-lineno">3686</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-IE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3489" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3489', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3687"></a><tt class="py-lineno">3687</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3688"></a><tt class="py-lineno">3688</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3490" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3530', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3733"></a><tt class="py-lineno">3733</tt> <tt class="py-line"> <tt class="py-comment"># we try not to swallow the initial exception in Py2</tt> </tt>
+<a name="L3734"></a><tt class="py-lineno">3734</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op"><</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-IE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3531" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3531', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3737"></a><tt class="py-lineno">3737</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3490', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3689"></a><tt class="py-lineno">3689</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">>=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L3690"></a><tt class="py-lineno">3690</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-VE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3491" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3491', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3691"></a><tt class="py-lineno">3691</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3692"></a><tt class="py-lineno">3692</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3693"></a><tt class="py-lineno">3693</tt> <tt class="py-line"> </tt>
-<a name="L3694"></a><tt class="py-lineno">3694</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3492" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3532', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3738"></a><tt class="py-lineno">3738</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">>=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L3739"></a><tt class="py-lineno">3739</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-VE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3533" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3533', 'str', 'link-682');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3740"></a><tt class="py-lineno">3740</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3741"></a><tt class="py-lineno">3741</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3742"></a><tt class="py-lineno">3742</tt> <tt class="py-line"> </tt>
+<a name="L3743"></a><tt class="py-lineno">3743</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3534" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3492', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3695"></a><tt class="py-lineno">3695</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L3696"></a><tt class="py-lineno">3696</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3697"></a><tt class="py-lineno">3697</tt> <tt class="py-line"> <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
-<a name="L3698"></a><tt class="py-lineno">3698</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3699"></a><tt class="py-lineno">3699</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_parser_target"></a><div id="_ETreeTestCaseBase.test_elementtree_parser_target-def"><a name="L3700"></a><tt class="py-lineno">3700</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_parser_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_parser_target');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-expanded"><a name="L3701"></a><tt class="py-lineno">3701</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3702"></a><tt class="py-lineno">3702</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
-<a name="L3703"></a><tt class="py-lineno">3703</tt> <tt class="py-line"> <tt id="link-3493" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3534', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3744"></a><tt class="py-lineno">3744</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L3745"></a><tt class="py-lineno">3745</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3746"></a><tt class="py-lineno">3746</tt> <tt class="py-line"> <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
+<a name="L3747"></a><tt class="py-lineno">3747</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3748"></a><tt class="py-lineno">3748</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_parser_target"></a><div id="_ETreeTestCaseBase.test_elementtree_parser_target-def"><a name="L3749"></a><tt class="py-lineno">3749</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_parser_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_parser_target');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-expanded"><a name="L3750"></a><tt class="py-lineno">3750</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3751"></a><tt class="py-lineno">3751</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertFalse</tt> </tt>
+<a name="L3752"></a><tt class="py-lineno">3752</tt> <tt class="py-line"> <tt id="link-3535" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3493', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3494" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3535', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3494', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3536', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3537" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3495', 'Element', 'link-43');">Element</a></tt> </tt>
-<a name="L3704"></a><tt class="py-lineno">3704</tt> <tt class="py-line"> </tt>
-<a name="L3705"></a><tt class="py-lineno">3705</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3706"></a><tt class="py-lineno">3706</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3707"></a><tt class="py-lineno">3707</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3708"></a><tt class="py-lineno">3708</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3496', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3709"></a><tt class="py-lineno">3709</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-3497" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3537', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3753"></a><tt class="py-lineno">3753</tt> <tt class="py-line"> </tt>
+<a name="L3754"></a><tt class="py-lineno">3754</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3755"></a><tt class="py-lineno">3755</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3756"></a><tt class="py-lineno">3756</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3757"></a><tt class="py-lineno">3757</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3538" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3538', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3758"></a><tt class="py-lineno">3758</tt> <tt class="py-line"> <tt class="py-name">assertFalse</tt><tt class="py-op">(</tt><tt id="link-3539" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3497', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3710"></a><tt class="py-lineno">3710</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3539', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3759"></a><tt class="py-lineno">3759</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3540" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3498', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3711"></a><tt class="py-lineno">3711</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3712"></a><tt class="py-lineno">3712</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3499', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3713"></a><tt class="py-lineno">3713</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3500" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3540', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3760"></a><tt class="py-lineno">3760</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3761"></a><tt class="py-lineno">3761</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3541" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3541', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3762"></a><tt class="py-lineno">3762</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3542" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3500', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3714"></a><tt class="py-lineno">3714</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3715"></a><tt class="py-lineno">3715</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3501" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3542', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3763"></a><tt class="py-lineno">3763</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3764"></a><tt class="py-lineno">3764</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3543" class="py-name"><a title="lxml.etree.Element
lxml.objectify.Element
lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3501', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3716"></a><tt class="py-lineno">3716</tt> <tt class="py-line"> </tt>
-<a name="L3717"></a><tt class="py-lineno">3717</tt> <tt class="py-line"> <tt id="link-3502" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3502', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3543', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3765"></a><tt class="py-lineno">3765</tt> <tt class="py-line"> </tt>
+<a name="L3766"></a><tt class="py-lineno">3766</tt> <tt class="py-line"> <tt id="link-3544" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3544', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3503', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3504" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3504', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3718"></a><tt class="py-lineno">3718</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3545', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3546" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3546', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3767"></a><tt class="py-lineno">3767</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3547" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3505', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3506" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3547', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3548" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3506', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3719"></a><tt class="py-lineno">3719</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3507" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3548', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3768"></a><tt class="py-lineno">3768</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3549" class="py-name"><a title="lxml.etree._ElementTree.parse
lxml.etree.parse
lxml.html.ElementSoup.parse
lxml.html.html5parser.parse
lxml.html.soupparser.parse
lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3507', 'parse', 'link-2473');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3508" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3508', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">=</tt><tt id="link-3509" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3509', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3720"></a><tt class="py-lineno">3720</tt> <tt class="py-line"> </tt>
-<a name="L3721"></a><tt class="py-lineno">3721</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3510', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3511" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3549', 'parse', 'link-2515');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"<TAG/>"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3550" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3550', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">=</tt><tt id="link-3551" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3551', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3769"></a><tt class="py-lineno">3769</tt> <tt class="py-line"> </tt>
+<a name="L3770"></a><tt class="py-lineno">3770</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3552" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3552', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3553" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3511', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3722"></a><tt class="py-lineno">3722</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3723"></a><tt class="py-lineno">3723</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_attrib"></a><div id="_ETreeTestCaseBase.test_parser_target_attrib-def"><a name="L3724"></a><tt class="py-lineno">3724</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_attrib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_attrib-expanded"><a name="L3725"></a><tt class="py-lineno">3725</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3726"></a><tt class="py-lineno">3726</tt> <tt class="py-line"> </tt>
-<a name="L3727"></a><tt class="py-lineno">3727</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3728"></a><tt class="py-lineno">3728</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3729"></a><tt class="py-lineno">3729</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3730"></a><tt class="py-lineno">3730</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3512', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3513" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3553', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3771"></a><tt class="py-lineno">3771</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3772"></a><tt class="py-lineno">3772</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_attrib"></a><div id="_ETreeTestCaseBase.test_parser_target_attrib-def"><a name="L3773"></a><tt class="py-lineno">3773</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_attrib');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_attrib-expanded"><a name="L3774"></a><tt class="py-lineno">3774</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3775"></a><tt class="py-lineno">3775</tt> <tt class="py-line"> </tt>
+<a name="L3776"></a><tt class="py-lineno">3776</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3777"></a><tt class="py-lineno">3777</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3778"></a><tt class="py-lineno">3778</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3779"></a><tt class="py-lineno">3779</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3554', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3555" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3513', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3731"></a><tt class="py-lineno">3731</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-3514" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3555', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3780"></a><tt class="py-lineno">3780</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt id="link-3556" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
lxml.etree._Entity.name
lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3514', 'name', 'link-3514');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3515" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3556', 'name', 'link-3556');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3557" class="py-name"><a title="lxml.html.CheckboxGroup.value
lxml.html.InputElement.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3515', 'value', 'link-1144');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-3516" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3557', 'value', 'link-1150');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-3558" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3516', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3558', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3559" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3517', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3732"></a><tt class="py-lineno">3732</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3518" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3559', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3781"></a><tt class="py-lineno">3781</tt> <tt class="py-line"> <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3560" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3518', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">+</tt> <tt id="link-3519" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3560', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">+</tt> <tt id="link-3561" class="py-name"><a title="lxml.etree.DTD.name
lxml.etree._Entity.name
lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3519', 'name', 'link-3514');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3520" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3561', 'name', 'link-3556');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3562" class="py-name"><a title="lxml.html.CheckboxGroup.value
lxml.html.InputElement.value
lxml.html.RadioGroup.value
lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3520', 'value', 'link-1144');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3733"></a><tt class="py-lineno">3733</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3734"></a><tt class="py-lineno">3734</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3521', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3522" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3562', 'value', 'link-1150');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3782"></a><tt class="py-lineno">3782</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3783"></a><tt class="py-lineno">3783</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3563', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3564" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3522', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3735"></a><tt class="py-lineno">3735</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3736"></a><tt class="py-lineno">3736</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3737"></a><tt class="py-lineno">3737</tt> <tt class="py-line"> </tt>
-<a name="L3738"></a><tt class="py-lineno">3738</tt> <tt class="py-line"> <tt id="link-3523" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3523', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3564', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3784"></a><tt class="py-lineno">3784</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3785"></a><tt class="py-lineno">3785</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3786"></a><tt class="py-lineno">3786</tt> <tt class="py-line"> </tt>
+<a name="L3787"></a><tt class="py-lineno">3787</tt> <tt class="py-line"> <tt id="link-3565" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3565', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3566" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3524', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3525" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3525', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3739"></a><tt class="py-lineno">3739</tt> <tt class="py-line"> </tt>
-<a name="L3740"></a><tt class="py-lineno">3740</tt> <tt class="py-line"> <tt id="link-3526" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3526', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3527', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root a="roota" b="rootb"><sub c="subc"/></root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3741"></a><tt class="py-lineno">3741</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3528" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3528', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3566', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3567" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3567', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3788"></a><tt class="py-lineno">3788</tt> <tt class="py-line"> </tt>
+<a name="L3789"></a><tt class="py-lineno">3789</tt> <tt class="py-line"> <tt id="link-3568" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3568', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3569" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3569', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root a="roota" b="rootb"><sub c="subc"/></root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3790"></a><tt class="py-lineno">3790</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3570" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3570', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3529', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3742"></a><tt class="py-lineno">3742</tt> <tt class="py-line"> </tt>
-<a name="L3743"></a><tt class="py-lineno">3743</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3744"></a><tt class="py-lineno">3744</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3745"></a><tt class="py-lineno">3745</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3746"></a><tt class="py-lineno">3746</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_data"></a><div id="_ETreeTestCaseBase.test_parser_target_data-def"><a name="L3747"></a><tt class="py-lineno">3747</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_data-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_data-expanded"><a name="L3748"></a><tt class="py-lineno">3748</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3749"></a><tt class="py-lineno">3749</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3750"></a><tt class="py-lineno">3750</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3751"></a><tt class="py-lineno">3751</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3530', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3531" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3571', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3791"></a><tt class="py-lineno">3791</tt> <tt class="py-line"> </tt>
+<a name="L3792"></a><tt class="py-lineno">3792</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3793"></a><tt class="py-lineno">3793</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3794"></a><tt class="py-lineno">3794</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3795"></a><tt class="py-lineno">3795</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_data"></a><div id="_ETreeTestCaseBase.test_parser_target_data-def"><a name="L3796"></a><tt class="py-lineno">3796</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_data-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_data-expanded"><a name="L3797"></a><tt class="py-lineno">3797</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3798"></a><tt class="py-lineno">3798</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3799"></a><tt class="py-lineno">3799</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3800"></a><tt class="py-lineno">3800</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3572" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3572', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3573" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3531', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3752"></a><tt class="py-lineno">3752</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3753"></a><tt class="py-lineno">3753</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3532', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3533" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3573', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3801"></a><tt class="py-lineno">3801</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3802"></a><tt class="py-lineno">3802</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3574" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3574', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3575" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3533', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3754"></a><tt class="py-lineno">3754</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3755"></a><tt class="py-lineno">3755</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3534', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-3535" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3535', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3756"></a><tt class="py-lineno">3756</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3757"></a><tt class="py-lineno">3757</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3758"></a><tt class="py-lineno">3758</tt> <tt class="py-line"> </tt>
-<a name="L3759"></a><tt class="py-lineno">3759</tt> <tt class="py-line"> <tt id="link-3536" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3536', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3537" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3575', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3803"></a><tt class="py-lineno">3803</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3804"></a><tt class="py-lineno">3804</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3576" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3576', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-3577" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3577', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3805"></a><tt class="py-lineno">3805</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3806"></a><tt class="py-lineno">3806</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3807"></a><tt class="py-lineno">3807</tt> <tt class="py-line"> </tt>
+<a name="L3808"></a><tt class="py-lineno">3808</tt> <tt class="py-line"> <tt id="link-3578" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3578', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3579" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3537', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3538" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3538', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3760"></a><tt class="py-lineno">3760</tt> <tt class="py-line"> </tt>
-<a name="L3761"></a><tt class="py-lineno">3761</tt> <tt class="py-line"> <tt id="link-3539" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3539', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3540', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>A<sub/>B</root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3762"></a><tt class="py-lineno">3762</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3541" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3541', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3542" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3579', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3580" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3580', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3809"></a><tt class="py-lineno">3809</tt> <tt class="py-line"> </tt>
+<a name="L3810"></a><tt class="py-lineno">3810</tt> <tt class="py-line"> <tt id="link-3581" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3581', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3582', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>A<sub/>B</root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3811"></a><tt class="py-lineno">3811</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3583" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3583', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3584" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3542', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3763"></a><tt class="py-lineno">3763</tt> <tt class="py-line"> </tt>
-<a name="L3764"></a><tt class="py-lineno">3764</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3765"></a><tt class="py-lineno">3765</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3766"></a><tt class="py-lineno">3766</tt> <tt class="py-line"> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3767"></a><tt class="py-lineno">3767</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3768"></a><tt class="py-lineno">3768</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_entity"></a><div id="_ETreeTestCaseBase.test_parser_target_entity-def"><a name="L3769"></a><tt class="py-lineno">3769</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_entity-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity-expanded"><a name="L3770"></a><tt class="py-lineno">3770</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3771"></a><tt class="py-lineno">3771</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3772"></a><tt class="py-lineno">3772</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3773"></a><tt class="py-lineno">3773</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3774"></a><tt class="py-lineno">3774</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3775"></a><tt class="py-lineno">3775</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="L3776"></a><tt class="py-lineno">3776</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3543" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3543', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3777"></a><tt class="py-lineno">3777</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3778"></a><tt class="py-lineno">3778</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3779"></a><tt class="py-lineno">3779</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3780"></a><tt class="py-lineno">3780</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3544', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3545" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3584', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3812"></a><tt class="py-lineno">3812</tt> <tt class="py-line"> </tt>
+<a name="L3813"></a><tt class="py-lineno">3813</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3814"></a><tt class="py-lineno">3814</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3815"></a><tt class="py-lineno">3815</tt> <tt class="py-line"> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3816"></a><tt class="py-lineno">3816</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3817"></a><tt class="py-lineno">3817</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_entity"></a><div id="_ETreeTestCaseBase.test_parser_target_entity-def"><a name="L3818"></a><tt class="py-lineno">3818</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_entity-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity-expanded"><a name="L3819"></a><tt class="py-lineno">3819</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3820"></a><tt class="py-lineno">3820</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3821"></a><tt class="py-lineno">3821</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3822"></a><tt class="py-lineno">3822</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3823"></a><tt class="py-lineno">3823</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3824"></a><tt class="py-lineno">3824</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L3825"></a><tt class="py-lineno">3825</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3585', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3826"></a><tt class="py-lineno">3826</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3827"></a><tt class="py-lineno">3827</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3828"></a><tt class="py-lineno">3828</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3829"></a><tt class="py-lineno">3829</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3586', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3587" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3545', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3781"></a><tt class="py-lineno">3781</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3782"></a><tt class="py-lineno">3782</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3783"></a><tt class="py-lineno">3783</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3546', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3547" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3587', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3830"></a><tt class="py-lineno">3830</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3831"></a><tt class="py-lineno">3831</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3832"></a><tt class="py-lineno">3832</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3588', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3589" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3547', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3784"></a><tt class="py-lineno">3784</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3785"></a><tt class="py-lineno">3785</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3548" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3548', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3549" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3549', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3786"></a><tt class="py-lineno">3786</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3787"></a><tt class="py-lineno">3787</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3788"></a><tt class="py-lineno">3788</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3789"></a><tt class="py-lineno">3789</tt> <tt class="py-line"> </tt>
-<a name="L3790"></a><tt class="py-lineno">3790</tt> <tt class="py-line"> <tt id="link-3550" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3550', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3551" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3589', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3833"></a><tt class="py-lineno">3833</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3834"></a><tt class="py-lineno">3834</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3590" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3590', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3591" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3591', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3835"></a><tt class="py-lineno">3835</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3836"></a><tt class="py-lineno">3836</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3837"></a><tt class="py-lineno">3837</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3838"></a><tt class="py-lineno">3838</tt> <tt class="py-line"> </tt>
+<a name="L3839"></a><tt class="py-lineno">3839</tt> <tt class="py-line"> <tt id="link-3592" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3592', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3593" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3551', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3552" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3552', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3791"></a><tt class="py-lineno">3791</tt> <tt class="py-line"> </tt>
-<a name="L3792"></a><tt class="py-lineno">3792</tt> <tt class="py-line"> <tt class="py-name">dtd</tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L3793"></a><tt class="py-lineno">3793</tt> <tt class="py-line"><tt class="py-string"> <!DOCTYPE root [</tt> </tt>
-<a name="L3794"></a><tt class="py-lineno">3794</tt> <tt class="py-line"><tt class="py-string"> <!ELEMENT root (sub*)></tt> </tt>
-<a name="L3795"></a><tt class="py-lineno">3795</tt> <tt class="py-line"><tt class="py-string"> <!ELEMENT sub (#PCDATA)></tt> </tt>
-<a name="L3796"></a><tt class="py-lineno">3796</tt> <tt class="py-line"><tt class="py-string"> <!ENTITY ent "an entity"></tt> </tt>
-<a name="L3797"></a><tt class="py-lineno">3797</tt> <tt class="py-line"><tt class="py-string"> ]></tt> </tt>
-<a name="L3798"></a><tt class="py-lineno">3798</tt> <tt class="py-line"><tt class="py-string"> '''</tt> </tt>
-<a name="L3799"></a><tt class="py-lineno">3799</tt> <tt class="py-line"> <tt id="link-3553" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3553', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3554', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd</tt><tt class="py-op">+</tt><tt class="py-string">'<root><sub/><sub>this is &ent;</sub><sub/></root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3800"></a><tt class="py-lineno">3800</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3555" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3555', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3556" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3593', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3594" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3594', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3840"></a><tt class="py-lineno">3840</tt> <tt class="py-line"> </tt>
+<a name="L3841"></a><tt class="py-lineno">3841</tt> <tt class="py-line"> <tt class="py-name">dtd</tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
+<a name="L3842"></a><tt class="py-lineno">3842</tt> <tt class="py-line"><tt class="py-string"> <!DOCTYPE root [</tt> </tt>
+<a name="L3843"></a><tt class="py-lineno">3843</tt> <tt class="py-line"><tt class="py-string"> <!ELEMENT root (sub*)></tt> </tt>
+<a name="L3844"></a><tt class="py-lineno">3844</tt> <tt class="py-line"><tt class="py-string"> <!ELEMENT sub (#PCDATA)></tt> </tt>
+<a name="L3845"></a><tt class="py-lineno">3845</tt> <tt class="py-line"><tt class="py-string"> <!ENTITY ent "an entity"></tt> </tt>
+<a name="L3846"></a><tt class="py-lineno">3846</tt> <tt class="py-line"><tt class="py-string"> ]></tt> </tt>
+<a name="L3847"></a><tt class="py-lineno">3847</tt> <tt class="py-line"><tt class="py-string"> '''</tt> </tt>
+<a name="L3848"></a><tt class="py-lineno">3848</tt> <tt class="py-line"> <tt id="link-3595" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3595', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3596" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3596', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd</tt><tt class="py-op">+</tt><tt class="py-string">'<root><sub/><sub>this is &ent;</sub><sub/></root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3849"></a><tt class="py-lineno">3849</tt> <tt class="py-line"> <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3597" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3597', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3598" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3556', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3801"></a><tt class="py-lineno">3801</tt> <tt class="py-line"> </tt>
-<a name="L3802"></a><tt class="py-lineno">3802</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3803"></a><tt class="py-lineno">3803</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3804"></a><tt class="py-lineno">3804</tt> <tt class="py-line"> <tt class="py-string">"data-this is an entity"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3805"></a><tt class="py-lineno">3805</tt> <tt class="py-line"> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3806"></a><tt class="py-lineno">3806</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3807"></a><tt class="py-lineno">3807</tt> <tt class="py-line"> </tt>
-<a name="L3808"></a><tt class="py-lineno">3808</tt> <tt class="py-line"> <tt id="link-3557" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3557', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_entity_unknown'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_entity_unknown"></a><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-def"><a name="L3809"></a><tt class="py-lineno">3809</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity_unknown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-expanded"><a name="L3810"></a><tt class="py-lineno">3810</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3811"></a><tt class="py-lineno">3811</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3812"></a><tt class="py-lineno">3812</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3813"></a><tt class="py-lineno">3813</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3814"></a><tt class="py-lineno">3814</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3815"></a><tt class="py-lineno">3815</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="L3816"></a><tt class="py-lineno">3816</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3558', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3817"></a><tt class="py-lineno">3817</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3818"></a><tt class="py-lineno">3818</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3819"></a><tt class="py-lineno">3819</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3820"></a><tt class="py-lineno">3820</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3559" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3559', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3560" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3598', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3850"></a><tt class="py-lineno">3850</tt> <tt class="py-line"> </tt>
+<a name="L3851"></a><tt class="py-lineno">3851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3852"></a><tt class="py-lineno">3852</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3853"></a><tt class="py-lineno">3853</tt> <tt class="py-line"> <tt class="py-string">"data-this is an entity"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3854"></a><tt class="py-lineno">3854</tt> <tt class="py-line"> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3855"></a><tt class="py-lineno">3855</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3856"></a><tt class="py-lineno">3856</tt> <tt class="py-line"> </tt>
+<a name="L3857"></a><tt class="py-lineno">3857</tt> <tt class="py-line"> <tt id="link-3599" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3599', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_entity_unknown'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_entity_unknown"></a><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-def"><a name="L3858"></a><tt class="py-lineno">3858</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity_unknown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-expanded"><a name="L3859"></a><tt class="py-lineno">3859</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3860"></a><tt class="py-lineno">3860</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3861"></a><tt class="py-lineno">3861</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3862"></a><tt class="py-lineno">3862</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3863"></a><tt class="py-lineno">3863</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3864"></a><tt class="py-lineno">3864</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L3865"></a><tt class="py-lineno">3865</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3600" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3600', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3866"></a><tt class="py-lineno">3866</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3867"></a><tt class="py-lineno">3867</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3868"></a><tt class="py-lineno">3868</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3869"></a><tt class="py-lineno">3869</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3601" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3601', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3602" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3560', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3821"></a><tt class="py-lineno">3821</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3822"></a><tt class="py-lineno">3822</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3823"></a><tt class="py-lineno">3823</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3561', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3562" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3602', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3870"></a><tt class="py-lineno">3870</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3871"></a><tt class="py-lineno">3871</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3872"></a><tt class="py-lineno">3872</tt> <tt class="py-line"> <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3603" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3603', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3604" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3562', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3824"></a><tt class="py-lineno">3824</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3825"></a><tt class="py-lineno">3825</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3563', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3564" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3564', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3826"></a><tt class="py-lineno">3826</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3827"></a><tt class="py-lineno">3827</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3828"></a><tt class="py-lineno">3828</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3829"></a><tt class="py-lineno">3829</tt> <tt class="py-line"> </tt>
-<a name="L3830"></a><tt class="py-lineno">3830</tt> <tt class="py-line"> <tt id="link-3565" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3565', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3566" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3604', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3873"></a><tt class="py-lineno">3873</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3874"></a><tt class="py-lineno">3874</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3605" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3605', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3606" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3606', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3875"></a><tt class="py-lineno">3875</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3876"></a><tt class="py-lineno">3876</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3877"></a><tt class="py-lineno">3877</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3878"></a><tt class="py-lineno">3878</tt> <tt class="py-line"> </tt>
+<a name="L3879"></a><tt class="py-lineno">3879</tt> <tt class="py-line"> <tt id="link-3607" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3607', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3566', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3567" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3567', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3831"></a><tt class="py-lineno">3831</tt> <tt class="py-line"> </tt>
-<a name="L3832"></a><tt class="py-lineno">3832</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">feed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3833"></a><tt class="py-lineno">3833</tt> <tt class="py-line"> <tt id="link-3568" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3568', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3569" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3569', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><sub/><sub>some &ent;</sub><sub/></root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3834"></a><tt class="py-lineno">3834</tt> <tt class="py-line"> <tt id="link-3570" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3570', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3608', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3609" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3609', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3880"></a><tt class="py-lineno">3880</tt> <tt class="py-line"> </tt>
+<a name="L3881"></a><tt class="py-lineno">3881</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">feed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3882"></a><tt class="py-lineno">3882</tt> <tt class="py-line"> <tt id="link-3610" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3610', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3611" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3611', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root><sub/><sub>some &ent;</sub><sub/></root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3883"></a><tt class="py-lineno">3883</tt> <tt class="py-line"> <tt id="link-3612" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3612', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3613" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3571', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3835"></a><tt class="py-lineno">3835</tt> <tt class="py-line"> </tt>
-<a name="L3836"></a><tt class="py-lineno">3836</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3572" class="py-name"><a title="lxml.etree
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3613', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3884"></a><tt class="py-lineno">3884</tt> <tt class="py-line"> </tt>
+<a name="L3885"></a><tt class="py-lineno">3885</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3614" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3572', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3573" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3573', 'ParseError', 'link-2886');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3574" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3574', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3837"></a><tt class="py-lineno">3837</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_treebuilder"></a><div id="_ETreeTestCaseBase.test_treebuilder-def"><a name="L3838"></a><tt class="py-lineno">3838</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_treebuilder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder-expanded"><a name="L3839"></a><tt class="py-lineno">3839</tt> <tt class="py-line"> <tt id="link-3575" class="py-name" targets="Module lxml.builder=lxml.builder-module.html,Module lxml.html.builder=lxml.html.builder-module.html"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3575', 'builder', 'link-3575');">builder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3576" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3614', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3615" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3615', 'ParseError', 'link-2928');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3616" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3616', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3886"></a><tt class="py-lineno">3886</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_treebuilder"></a><div id="_ETreeTestCaseBase.test_treebuilder-def"><a name="L3887"></a><tt class="py-lineno">3887</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_treebuilder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder-expanded"><a name="L3888"></a><tt class="py-lineno">3888</tt> <tt class="py-line"> <tt id="link-3617" class="py-name" targets="Module lxml.builder=lxml.builder-module.html,Module lxml.html.builder=lxml.html.builder-module.html"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3617', 'builder', 'link-3617');">builder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3618" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3576', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3577" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3577', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3840"></a><tt class="py-lineno">3840</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3578" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3578', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3579" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3579', 'start', 'link-3579');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L3841"></a><tt class="py-lineno">3841</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3580" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3618', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3619', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3889"></a><tt class="py-lineno">3889</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3620" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3620', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3621" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3621', 'start', 'link-3621');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L3890"></a><tt class="py-lineno">3890</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3580', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3842"></a><tt class="py-lineno">3842</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3622', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3891"></a><tt class="py-lineno">3891</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3581', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3843"></a><tt class="py-lineno">3843</tt> <tt class="py-line"> <tt id="link-3582" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3582', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3583', 'data', 'link-1067');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3844"></a><tt class="py-lineno">3844</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3584" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3584', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3585', 'start', 'link-3579');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L3845"></a><tt class="py-lineno">3845</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3623', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3892"></a><tt class="py-lineno">3892</tt> <tt class="py-line"> <tt id="link-3624" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3624', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3625" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3625', 'data', 'link-1073');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3893"></a><tt class="py-lineno">3893</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3626', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3627" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3627', 'start', 'link-3621');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L3894"></a><tt class="py-lineno">3894</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3628" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3586', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3846"></a><tt class="py-lineno">3846</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3628', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3895"></a><tt class="py-lineno">3895</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3629" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3587', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3847"></a><tt class="py-lineno">3847</tt> <tt class="py-line"> <tt id="link-3588" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3588', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3589" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3589', 'data', 'link-1067');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3848"></a><tt class="py-lineno">3848</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3590" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3590', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3591', 'end', 'link-3591');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3849"></a><tt class="py-lineno">3849</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3629', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3896"></a><tt class="py-lineno">3896</tt> <tt class="py-line"> <tt id="link-3630" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3630', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3631" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3631', 'data', 'link-1073');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3897"></a><tt class="py-lineno">3897</tt> <tt class="py-line"> <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3632" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3632', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3633" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3633', 'end', 'link-3633');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3898"></a><tt class="py-lineno">3898</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3634" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3592', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3850"></a><tt class="py-lineno">3850</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3593" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3634', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3899"></a><tt class="py-lineno">3899</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3635" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3593', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3851"></a><tt class="py-lineno">3851</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3594" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3635', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3900"></a><tt class="py-lineno">3900</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3636" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3594', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3852"></a><tt class="py-lineno">3852</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3595', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3853"></a><tt class="py-lineno">3853</tt> <tt class="py-line"> <tt id="link-3596" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3596', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3597', 'data', 'link-1067');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3854"></a><tt class="py-lineno">3854</tt> <tt class="py-line"> <tt id="link-3598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3598', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3599" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3599', 'builder', 'link-3575');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3600" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3600', 'end', 'link-3591');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3855"></a><tt class="py-lineno">3855</tt> <tt class="py-line"> </tt>
-<a name="L3856"></a><tt class="py-lineno">3856</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3601', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3602" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3636', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3901"></a><tt class="py-lineno">3901</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3637', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3902"></a><tt class="py-lineno">3902</tt> <tt class="py-line"> <tt id="link-3638" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3638', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3639" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3639', 'data', 'link-1073');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3903"></a><tt class="py-lineno">3903</tt> <tt class="py-line"> <tt id="link-3640" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3640', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3641', 'builder', 'link-3617');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3642', 'end', 'link-3633');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3904"></a><tt class="py-lineno">3904</tt> <tt class="py-line"> </tt>
+<a name="L3905"></a><tt class="py-lineno">3905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3643" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3643', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3644" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3602', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3857"></a><tt class="py-lineno">3857</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3603" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3603', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3604" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3644', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3906"></a><tt class="py-lineno">3906</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3645" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3645', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3646" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3604', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3858"></a><tt class="py-lineno">3858</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3605', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3606" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3646', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3907"></a><tt class="py-lineno">3907</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3647" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3647', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3606', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3859"></a><tt class="py-lineno">3859</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3607" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3607', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3608', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3860"></a><tt class="py-lineno">3860</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_treebuilder_target"></a><div id="_ETreeTestCaseBase.test_treebuilder_target-def"><a name="L3861"></a><tt class="py-lineno">3861</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder_target');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_treebuilder_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder_target-expanded"><a name="L3862"></a><tt class="py-lineno">3862</tt> <tt class="py-line"> <tt id="link-3609" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3609', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3610" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3648', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3908"></a><tt class="py-lineno">3908</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3649', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3650" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3650', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3909"></a><tt class="py-lineno">3909</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_treebuilder_target"></a><div id="_ETreeTestCaseBase.test_treebuilder_target-def"><a name="L3910"></a><tt class="py-lineno">3910</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder_target');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_treebuilder_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder_target-expanded"><a name="L3911"></a><tt class="py-lineno">3911</tt> <tt class="py-line"> <tt id="link-3651" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3651', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3652" class="py-name"><a title="lxml.etree.XMLParser
lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3610', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3611" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3611', 'target', 'link-3424');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3612" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3652', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3653', 'target', 'link-3466');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3612', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3613" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3613', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3863"></a><tt class="py-lineno">3863</tt> <tt class="py-line"> <tt id="link-3614" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3614', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3615" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3615', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>ROOTTEXT<child>CHILDTEXT</child>CHILDTAIL</root>'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3864"></a><tt class="py-lineno">3864</tt> <tt class="py-line"> <tt id="link-3616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3616', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3617" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3617', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3618" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3654', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3655" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3655', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3912"></a><tt class="py-lineno">3912</tt> <tt class="py-line"> <tt id="link-3656" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3656', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3657" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3657', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'<root>ROOTTEXT<child>CHILDTEXT</child>CHILDTAIL</root>'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3913"></a><tt class="py-lineno">3913</tt> <tt class="py-line"> <tt id="link-3658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3658', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3659" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3659', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3660" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3618', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3865"></a><tt class="py-lineno">3865</tt> <tt class="py-line"> </tt>
-<a name="L3866"></a><tt class="py-lineno">3866</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3619', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3620" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3660', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3914"></a><tt class="py-lineno">3914</tt> <tt class="py-line"> </tt>
+<a name="L3915"></a><tt class="py-lineno">3915</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3661" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3661', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3662" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3620', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3867"></a><tt class="py-lineno">3867</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3621', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3662', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3916"></a><tt class="py-lineno">3916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3663" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3663', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3622', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3868"></a><tt class="py-lineno">3868</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3623" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3623', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3624" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3664', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3917"></a><tt class="py-lineno">3917</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3665" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3665', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3666" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3624', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3869"></a><tt class="py-lineno">3869</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3625" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3625', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3626" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3626', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3870"></a><tt class="py-lineno">3870</tt> <tt class="py-line"> </tt>
-<a name="L3871"></a><tt class="py-lineno">3871</tt> <tt class="py-line"> <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L3872"></a><tt class="py-lineno">3872</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._writeElement"></a><div id="_ETreeTestCaseBase._writeElement-def"><a name="L3873"></a><tt class="py-lineno">3873</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElement-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElement-expanded"><a name="L3874"></a><tt class="py-lineno">3874</tt> <tt class="py-line"> <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L3875"></a><tt class="py-lineno">3875</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L3876"></a><tt class="py-lineno">3876</tt> <tt class="py-line"> <tt id="link-3627" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3627', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3628" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3666', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3918"></a><tt class="py-lineno">3918</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3667" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3667', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3668" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3668', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3919"></a><tt class="py-lineno">3919</tt> <tt class="py-line"> </tt>
+<a name="L3920"></a><tt class="py-lineno">3920</tt> <tt class="py-line"> <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L3921"></a><tt class="py-lineno">3921</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._writeElement"></a><div id="_ETreeTestCaseBase._writeElement-def"><a name="L3922"></a><tt class="py-lineno">3922</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElement-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElement');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElement-expanded"><a name="L3923"></a><tt class="py-lineno">3923</tt> <tt class="py-line"> <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L3924"></a><tt class="py-lineno">3924</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L3925"></a><tt class="py-lineno">3925</tt> <tt class="py-line"> <tt id="link-3669" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3669', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3628', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3629" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3629', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3630', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3631" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3670', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3671" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3671', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3672" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3672', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3673" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3631', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3632" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3673', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3674" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3632', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3877"></a><tt class="py-lineno">3877</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3633" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3633', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3634" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3634', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3878"></a><tt class="py-lineno">3878</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._writeElementFile"></a><div id="_ETreeTestCaseBase._writeElementFile-def"><a name="L3879"></a><tt class="py-lineno">3879</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElementFile-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElementFile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._writeElementFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElementFile-expanded"><a name="L3880"></a><tt class="py-lineno">3880</tt> <tt class="py-line"> <tt class="py-docstring">"""Write out element for comparison, using real file.</tt> </tt>
-<a name="L3881"></a><tt class="py-lineno">3881</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L3882"></a><tt class="py-lineno">3882</tt> <tt class="py-line"> <tt id="link-3635" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3674', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3926"></a><tt class="py-lineno">3926</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3675" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3675', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3676" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3676', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3927"></a><tt class="py-lineno">3927</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._writeElementFile"></a><div id="_ETreeTestCaseBase._writeElementFile-def"><a name="L3928"></a><tt class="py-lineno">3928</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElementFile-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElementFile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._writeElementFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElementFile-expanded"><a name="L3929"></a><tt class="py-lineno">3929</tt> <tt class="py-line"> <tt class="py-docstring">"""Write out element for comparison, using real file.</tt> </tt>
+<a name="L3930"></a><tt class="py-lineno">3930</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L3931"></a><tt class="py-lineno">3931</tt> <tt class="py-line"> <tt id="link-3677" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3635', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3636" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3677', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3678" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3636', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3678', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3679" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3637', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3883"></a><tt class="py-lineno">3883</tt> <tt class="py-line"> <tt id="link-3638" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.Validate.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.Validate-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3679', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3932"></a><tt class="py-lineno">3932</tt> <tt class="py-line"> <tt id="link-3680" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.Validate.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.Validate-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.Validate.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle" class="py-name" href="#" onclick="return doclink('link-3638', 'handle', 'link-3638');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3639" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3639', 'filename', 'link-3639');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3884"></a><tt class="py-lineno">3884</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3885"></a><tt class="py-lineno">3885</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3640" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3640', 'filename', 'link-3639');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3886"></a><tt class="py-lineno">3886</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle" class="py-name" href="#" onclick="return doclink('link-3680', 'handle', 'link-3680');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3681" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3681', 'filename', 'link-3681');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3933"></a><tt class="py-lineno">3933</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3934"></a><tt class="py-lineno">3934</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3682" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3682', 'filename', 'link-3681');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3935"></a><tt class="py-lineno">3935</tt> <tt class="py-line"> <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3683" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3641', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3642" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3642', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-3643" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3643', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3887"></a><tt class="py-lineno">3887</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3644" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3644', 'write', 'link-1066');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3645" class="py-name"><a title="lxml.etree.DocInfo.encoding
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3683', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3684" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3684', 'element', 'link-862');">element</a></tt><tt class="py-op">=</tt><tt id="link-3685" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3685', 'element', 'link-862');">element</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3936"></a><tt class="py-lineno">3936</tt> <tt class="py-line"> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3686" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3686', 'write', 'link-1072');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3687" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3645', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3646" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3687', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3688" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3646', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3888"></a><tt class="py-lineno">3888</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3647" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3688', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3937"></a><tt class="py-lineno">3937</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3647', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3889"></a><tt class="py-lineno">3889</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3648" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3648', 'filename', 'link-3639');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3890"></a><tt class="py-lineno">3890</tt> <tt class="py-line"> <tt id="link-3649" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3649', 'data', 'link-1067');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3650" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3650', 'read', 'link-3650');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3891"></a><tt class="py-lineno">3891</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3651" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3689', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3938"></a><tt class="py-lineno">3938</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3690" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3690', 'filename', 'link-3681');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3939"></a><tt class="py-lineno">3939</tt> <tt class="py-line"> <tt id="link-3691" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3691', 'data', 'link-1073');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3692" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3692', 'read', 'link-3692');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3940"></a><tt class="py-lineno">3940</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3693" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3651', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3892"></a><tt class="py-lineno">3892</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3893"></a><tt class="py-lineno">3893</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3652" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3693', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3941"></a><tt class="py-lineno">3941</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3942"></a><tt class="py-lineno">3942</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3694" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3652', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt id="link-3653" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3694', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt id="link-3695" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle
lxml.tests.test_threading.ThreadPipelineTestCase.Validate.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle" class="py-name" href="#" onclick="return doclink('link-3653', 'handle', 'link-3638');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3894"></a><tt class="py-lineno">3894</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.Worker.handle" class="py-name" href="#" onclick="return doclink('link-3695', 'handle', 'link-3680');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3943"></a><tt class="py-lineno">3943</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3696" class="py-name"><a title="lxml.etree._Element.remove
lxml.html.CheckboxValues.remove
lxml.html.Classes.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3654', 'remove', 'link-1744');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3655" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3655', 'filename', 'link-3639');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3895"></a><tt class="py-lineno">3895</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3656" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3656', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3657" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3657', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3896"></a><tt class="py-lineno">3896</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.assertXML"></a><div id="_ETreeTestCaseBase.assertXML-def"><a name="L3897"></a><tt class="py-lineno">3897</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertXML-toggle" onclick="return toggle('_ETreeTestCaseBase.assertXML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.assertXML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertXML-expanded"><a name="L3898"></a><tt class="py-lineno">3898</tt> <tt class="py-line"> <tt class="py-docstring">"""Writes element out and checks whether it is expected.</tt> </tt>
-<a name="L3899"></a><tt class="py-lineno">3899</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L3900"></a><tt class="py-lineno">3900</tt> <tt class="py-line"><tt class="py-docstring"> Does this two ways; once using BytesIO, once using a real file.</tt> </tt>
-<a name="L3901"></a><tt class="py-lineno">3901</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L3902"></a><tt class="py-lineno">3902</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3903"></a><tt class="py-lineno">3903</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-3658" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3696', 'remove', 'link-1750');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3697" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3697', 'filename', 'link-3681');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3944"></a><tt class="py-lineno">3944</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3698" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3698', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3699" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3699', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3945"></a><tt class="py-lineno">3945</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.assertXML"></a><div id="_ETreeTestCaseBase.assertXML-def"><a name="L3946"></a><tt class="py-lineno">3946</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertXML-toggle" onclick="return toggle('_ETreeTestCaseBase.assertXML');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.assertXML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertXML-expanded"><a name="L3947"></a><tt class="py-lineno">3947</tt> <tt class="py-line"> <tt class="py-docstring">"""Writes element out and checks whether it is expected.</tt> </tt>
+<a name="L3948"></a><tt class="py-lineno">3948</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L3949"></a><tt class="py-lineno">3949</tt> <tt class="py-line"><tt class="py-docstring"> Does this two ways; once using BytesIO, once using a real file.</tt> </tt>
+<a name="L3950"></a><tt class="py-lineno">3950</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L3951"></a><tt class="py-lineno">3951</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3952"></a><tt class="py-lineno">3952</tt> <tt class="py-line"> <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-3700" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3658', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3904"></a><tt class="py-lineno">3904</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-3659', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-3660" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3660', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3661" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3700', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3953"></a><tt class="py-lineno">3953</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3701" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-3701', '_writeElement', 'link-799');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-3702" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3702', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3703" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3661', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3905"></a><tt class="py-lineno">3905</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3662" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile" class="py-name" href="#" onclick="return doclink('link-3662', '_writeElementFile', 'link-3662');">_writeElementFile</a></tt><tt class="py-op">(</tt><tt id="link-3663" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3663', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3664" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3703', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3954"></a><tt class="py-lineno">3954</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile" class="py-name" href="#" onclick="return doclink('link-3704', '_writeElementFile', 'link-3704');">_writeElementFile</a></tt><tt class="py-op">(</tt><tt id="link-3705" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3705', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt id="link-3706" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3664', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3906"></a><tt class="py-lineno">3906</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.assertEncodingDeclaration"></a><div id="_ETreeTestCaseBase.assertEncodingDeclaration-def"><a name="L3907"></a><tt class="py-lineno">3907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertEncodingDeclaration-toggle" onclick="return toggle('_ETreeTestCaseBase.assertEncodingDeclaration');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-expanded"><a name="L3908"></a><tt class="py-lineno">3908</tt> <tt class="py-line"> <tt class="py-docstring">"Checks if the result XML byte string specifies the encoding."</tt> </tt>
-<a name="L3909"></a><tt class="py-lineno">3909</tt> <tt class="py-line"> <tt class="py-name">enc_re</tt> <tt class="py-op">=</tt> <tt class="py-string">r"<\?xml[^>]+ encoding=[\"']([^\"']+)[\"']"</tt> </tt>
-<a name="L3910"></a><tt class="py-lineno">3910</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3665" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3665', 'str', 'link-682');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3911"></a><tt class="py-lineno">3911</tt> <tt class="py-line"> <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
-<a name="L3912"></a><tt class="py-lineno">3912</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3913"></a><tt class="py-lineno">3913</tt> <tt class="py-line"> <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt id="link-3666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3666', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
-<a name="L3914"></a><tt class="py-lineno">3914</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3915"></a><tt class="py-lineno">3915</tt> <tt class="py-line"> <tt class="py-name">result_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3916"></a><tt class="py-lineno">3916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result_encoding</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3667" class="py-name"><a title="lxml.etree.DocInfo.encoding
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3706', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3955"></a><tt class="py-lineno">3955</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.assertEncodingDeclaration"></a><div id="_ETreeTestCaseBase.assertEncodingDeclaration-def"><a name="L3956"></a><tt class="py-lineno">3956</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertEncodingDeclaration-toggle" onclick="return toggle('_ETreeTestCaseBase.assertEncodingDeclaration');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-expanded"><a name="L3957"></a><tt class="py-lineno">3957</tt> <tt class="py-line"> <tt class="py-docstring">"Checks if the result XML byte string specifies the encoding."</tt> </tt>
+<a name="L3958"></a><tt class="py-lineno">3958</tt> <tt class="py-line"> <tt class="py-name">enc_re</tt> <tt class="py-op">=</tt> <tt class="py-string">r"<\?xml[^>]+ encoding=[\"']([^\"']+)[\"']"</tt> </tt>
+<a name="L3959"></a><tt class="py-lineno">3959</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3707" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3707', 'str', 'link-682');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3960"></a><tt class="py-lineno">3960</tt> <tt class="py-line"> <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L3961"></a><tt class="py-lineno">3961</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3962"></a><tt class="py-lineno">3962</tt> <tt class="py-line"> <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt id="link-3708" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3708', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L3963"></a><tt class="py-lineno">3963</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3964"></a><tt class="py-lineno">3964</tt> <tt class="py-line"> <tt class="py-name">result_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3965"></a><tt class="py-lineno">3965</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result_encoding</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3709" class="py-name"><a title="lxml.etree.DocInfo.encoding
lxml.tests.selftest.encoding
-lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3667', 'encoding', 'link-2835');">encoding</a></tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3917"></a><tt class="py-lineno">3917</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._rootstring"></a><div id="_ETreeTestCaseBase._rootstring-def"><a name="L3918"></a><tt class="py-lineno">3918</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._rootstring-toggle" onclick="return toggle('_ETreeTestCaseBase._rootstring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._rootstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._rootstring-expanded"><a name="L3919"></a><tt class="py-lineno">3919</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3668" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3668', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3669', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3670', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3671" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3671', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3920"></a><tt class="py-lineno">3920</tt> <tt class="py-line"> <tt id="link-3672" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3672', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3673" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3673', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3674', 'replace', 'link-1097');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3675" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3675', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3676" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3676', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3921"></a><tt class="py-lineno">3921</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_element_tree"></a><div id="_ETreeTestCaseBase._check_element_tree-def"><a name="L3922"></a><tt class="py-lineno">3922</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element_tree-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element_tree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_element_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element_tree-expanded"><a name="L3923"></a><tt class="py-lineno">3923</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3677" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-3677', '_check_element', 'link-1156');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3678" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3678', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3924"></a><tt class="py-lineno">3924</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_element"></a><div id="_ETreeTestCaseBase._check_element-def"><a name="L3925"></a><tt class="py-lineno">3925</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element-expanded"><a name="L3926"></a><tt class="py-lineno">3926</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3679" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3679', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3680" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3680', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3927"></a><tt class="py-lineno">3927</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3681" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3681', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3682" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3682', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attrib'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3928"></a><tt class="py-lineno">3928</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3683" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3683', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3684" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3684', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3929"></a><tt class="py-lineno">3929</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3685" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3685', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3686" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3686', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3930"></a><tt class="py-lineno">3930</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3687" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_string()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3687', '_check_string', 'link-3687');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3688" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3688', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.selftest2.encoding" class="py-name" href="#" onclick="return doclink('link-3709', 'encoding', 'link-2877');">encoding</a></tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3966"></a><tt class="py-lineno">3966</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._rootstring"></a><div id="_ETreeTestCaseBase._rootstring-def"><a name="L3967"></a><tt class="py-lineno">3967</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._rootstring-toggle" onclick="return toggle('_ETreeTestCaseBase._rootstring');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._rootstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._rootstring-expanded"><a name="L3968"></a><tt class="py-lineno">3968</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3710" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3710', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3711" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3711', 'tostring', 'link-216');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3712" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3712', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3713" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3713', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3969"></a><tt class="py-lineno">3969</tt> <tt class="py-line"> <tt id="link-3714" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3714', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3715" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3715', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3716" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3716', 'replace', 'link-1103');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3717" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3717', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3718" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3718', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3970"></a><tt class="py-lineno">3970</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_element_tree"></a><div id="_ETreeTestCaseBase._check_element_tree-def"><a name="L3971"></a><tt class="py-lineno">3971</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element_tree-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element_tree');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_element_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element_tree-expanded"><a name="L3972"></a><tt class="py-lineno">3972</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-3719', '_check_element', 'link-1162');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3720" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3720', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3973"></a><tt class="py-lineno">3973</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_element"></a><div id="_ETreeTestCaseBase._check_element-def"><a name="L3974"></a><tt class="py-lineno">3974</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element-expanded"><a name="L3975"></a><tt class="py-lineno">3975</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3721" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3721', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3722" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3722', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3976"></a><tt class="py-lineno">3976</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3723" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3723', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3724" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3724', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attrib'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3977"></a><tt class="py-lineno">3977</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3725" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3725', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3726" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3726', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3978"></a><tt class="py-lineno">3978</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3727" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3727', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3728" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3728', 'element', 'link-862');">element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3979"></a><tt class="py-lineno">3979</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3729" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_string()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3729', '_check_string', 'link-3729');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3730" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3730', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3731" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3689', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3931"></a><tt class="py-lineno">3931</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3690" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping" class="py-name" href="#" onclick="return doclink('link-3690', '_check_mapping', 'link-3690');">_check_mapping</a></tt><tt class="py-op">(</tt><tt id="link-3691" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3691', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3692" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3731', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3980"></a><tt class="py-lineno">3980</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3732" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping" class="py-name" href="#" onclick="return doclink('link-3732', '_check_mapping', 'link-3732');">_check_mapping</a></tt><tt class="py-op">(</tt><tt id="link-3733" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3733', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3734" class="py-name"><a title="lxml.etree._Element.attrib
lxml.etree._ProcessingInstruction.attrib
lxml.tests.selftest2.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3692', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3932"></a><tt class="py-lineno">3932</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3693" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3693', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3694" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3734', 'attrib', 'link-317');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3981"></a><tt class="py-lineno">3981</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3735" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3735', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3736" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3694', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L3933"></a><tt class="py-lineno">3933</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3695" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3695', '_check_string', 'link-3687');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3696" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3696', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3697" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3736', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L3982"></a><tt class="py-lineno">3982</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3737" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3737', '_check_string', 'link-3729');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3738" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3738', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3739" class="py-name"><a title="lxml.etree.QName.text
lxml.etree._Element.text
lxml.etree._Entity.text
lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3697', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3934"></a><tt class="py-lineno">3934</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3698" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3698', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3699" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3699', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L3935"></a><tt class="py-lineno">3935</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3700" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3700', '_check_string', 'link-3687');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3701" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3701', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3702" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3702', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3936"></a><tt class="py-lineno">3936</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_string"></a><div id="_ETreeTestCaseBase._check_string-def"><a name="L3937"></a><tt class="py-lineno">3937</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_string-toggle" onclick="return toggle('_ETreeTestCaseBase._check_string');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_string-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_string-expanded"><a name="L3938"></a><tt class="py-lineno">3938</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
-<a name="L3939"></a><tt class="py-lineno">3939</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">char</tt> <tt class="py-keyword">in</tt> <tt class="py-name">string</tt><tt class="py-op">:</tt> </tt>
-<a name="L3940"></a><tt class="py-lineno">3940</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">char</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3941"></a><tt class="py-lineno">3941</tt> <tt class="py-line"> <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">""</tt> </tt>
-<a name="L3942"></a><tt class="py-lineno">3942</tt> <tt class="py-line"> <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
-<a name="L3943"></a><tt class="py-lineno">3943</tt> <tt class="py-line"> <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3944"></a><tt class="py-lineno">3944</tt> <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_mapping"></a><div id="_ETreeTestCaseBase._check_mapping-def"><a name="L3945"></a><tt class="py-lineno">3945</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_mapping-toggle" onclick="return toggle('_ETreeTestCaseBase._check_mapping');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mapping</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_mapping-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_mapping-expanded"><a name="L3946"></a><tt class="py-lineno">3946</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mapping</tt><tt class="py-op">)</tt> </tt>
-<a name="L3947"></a><tt class="py-lineno">3947</tt> <tt class="py-line"> <tt id="link-3703" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3739', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3983"></a><tt class="py-lineno">3983</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3740" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3740', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3741" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3741', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L3984"></a><tt class="py-lineno">3984</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3742', '_check_string', 'link-3729');">_check_string</a></tt><tt class="py-op">(</tt><tt id="link-3743" class="py-name"><a title="lxml.tests.selftest2.element" class="py-name" href="#" onclick="return doclink('link-3743', 'element', 'link-862');">element</a></tt><tt class="py-op">.</tt><tt id="link-3744" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3744', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3985"></a><tt class="py-lineno">3985</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_string"></a><div id="_ETreeTestCaseBase._check_string-def"><a name="L3986"></a><tt class="py-lineno">3986</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_string-toggle" onclick="return toggle('_ETreeTestCaseBase._check_string');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_string-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_string-expanded"><a name="L3987"></a><tt class="py-lineno">3987</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
+<a name="L3988"></a><tt class="py-lineno">3988</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">char</tt> <tt class="py-keyword">in</tt> <tt class="py-name">string</tt><tt class="py-op">:</tt> </tt>
+<a name="L3989"></a><tt class="py-lineno">3989</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">char</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3990"></a><tt class="py-lineno">3990</tt> <tt class="py-line"> <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">""</tt> </tt>
+<a name="L3991"></a><tt class="py-lineno">3991</tt> <tt class="py-line"> <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L3992"></a><tt class="py-lineno">3992</tt> <tt class="py-line"> <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3993"></a><tt class="py-lineno">3993</tt> <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_mapping"></a><div id="_ETreeTestCaseBase._check_mapping-def"><a name="L3994"></a><tt class="py-lineno">3994</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_mapping-toggle" onclick="return toggle('_ETreeTestCaseBase._check_mapping');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mapping</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_mapping-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_mapping-expanded"><a name="L3995"></a><tt class="py-lineno">3995</tt> <tt class="py-line"> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mapping</tt><tt class="py-op">)</tt> </tt>
+<a name="L3996"></a><tt class="py-lineno">3996</tt> <tt class="py-line"> <tt id="link-3745" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3703', 'keys', 'link-589');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3745', 'keys', 'link-589');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3746" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3704', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3948"></a><tt class="py-lineno">3948</tt> <tt class="py-line"> <tt id="link-3705" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3746', 'keys', 'link-589');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3997"></a><tt class="py-lineno">3997</tt> <tt class="py-line"> <tt id="link-3747" class="py-name"><a title="lxml.etree._Attrib.values
lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3705', 'values', 'link-634');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3706" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3747', 'values', 'link-634');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3748" class="py-name"><a title="lxml.etree._Attrib.values
lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3706', 'values', 'link-634');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3949"></a><tt class="py-lineno">3949</tt> <tt class="py-line"> <tt id="link-3707" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3748', 'values', 'link-634');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3998"></a><tt class="py-lineno">3998</tt> <tt class="py-line"> <tt id="link-3749" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3707', 'items', 'link-499');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3708" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3749', 'items', 'link-499');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3750" class="py-name"><a title="lxml.etree._Attrib.items
lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3708', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3950"></a><tt class="py-lineno">3950</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-3709" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3750', 'items', 'link-499');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3999"></a><tt class="py-lineno">3999</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-3751" class="py-name"><a title="lxml.etree._Attrib.keys
lxml.etree._Element.keys
lxml.etree._IDDict.keys
lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3709', 'keys', 'link-589');">keys</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3951"></a><tt class="py-lineno">3951</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L3952"></a><tt class="py-lineno">3952</tt> <tt class="py-line"> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
-<a name="L3953"></a><tt class="py-lineno">3953</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">,</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3954"></a><tt class="py-lineno">3954</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest"></a><div id="_XMLPullParserTest-def"><a name="L3955"></a><tt class="py-lineno">3955</tt> <tt class="py-line"> </tt>
-<a name="L3956"></a><tt class="py-lineno">3956</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest-toggle" onclick="return toggle('_XMLPullParserTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html">_XMLPullParserTest</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XMLPullParserTest-expanded"><a name="L3957"></a><tt class="py-lineno">3957</tt> <tt class="py-line"> <tt id="link-3710" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3710', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L3958"></a><tt class="py-lineno">3958</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest._feed"></a><div id="_XMLPullParserTest._feed-def"><a name="L3959"></a><tt class="py-lineno">3959</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest._feed-toggle" onclick="return toggle('_XMLPullParserTest._feed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#_feed">_feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">chunk_size</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest._feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest._feed-expanded"><a name="L3960"></a><tt class="py-lineno">3960</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chunk_size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L3961"></a><tt class="py-lineno">3961</tt> <tt class="py-line"> <tt id="link-3711" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3711', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3712" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3712', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3713" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3713', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3962"></a><tt class="py-lineno">3962</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3963"></a><tt class="py-lineno">3963</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3714" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3714', 'data', 'link-1067');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3964"></a><tt class="py-lineno">3964</tt> <tt class="py-line"> <tt id="link-3715" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3715', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3716" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3716', 'feed', 'link-3322');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3717" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3717', 'data', 'link-1067');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-name">chunk_size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3965"></a><tt class="py-lineno">3965</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest._close_and_return_root"></a><div id="_XMLPullParserTest._close_and_return_root-def"><a name="L3966"></a><tt class="py-lineno">3966</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest._close_and_return_root-toggle" onclick="return toggle('_XMLPullParserTest._close_and_return_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#_close_and_return_root">_close_and_return_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest._close_and_return_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest._close_and_return_root-expanded"><a name="L3967"></a><tt class="py-lineno">3967</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'ElementTree'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3718" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3718', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3968"></a><tt class="py-lineno">3968</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree's API is a bit unwieldy in Py3.4</tt> </tt>
-<a name="L3969"></a><tt class="py-lineno">3969</tt> <tt class="py-line"> <tt id="link-3719" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3719', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3720" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3720', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3721" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#_close_and_return_root"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3721', '_close_and_return_root', 'link-3721');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3970"></a><tt class="py-lineno">3970</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3971"></a><tt class="py-lineno">3971</tt> <tt class="py-line"> <tt id="link-3722" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3722', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3723" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3723', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3724" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3751', 'keys', 'link-589');">keys</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4000"></a><tt class="py-lineno">4000</tt> <tt class="py-line"> <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L4001"></a><tt class="py-lineno">4001</tt> <tt class="py-line"> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
+<a name="L4002"></a><tt class="py-lineno">4002</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">,</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4003"></a><tt class="py-lineno">4003</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest"></a><div id="_XMLPullParserTest-def"><a name="L4004"></a><tt class="py-lineno">4004</tt> <tt class="py-line"> </tt>
+<a name="L4005"></a><tt class="py-lineno">4005</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest-toggle" onclick="return toggle('_XMLPullParserTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html">_XMLPullParserTest</a><tt class="py-op">(</tt><tt class="py-base-class">unittest</tt><tt class="py-op">.</tt><tt class="py-base-class">TestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XMLPullParserTest-expanded"><a name="L4006"></a><tt class="py-lineno">4006</tt> <tt class="py-line"> <tt id="link-3752" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3752', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L4007"></a><tt class="py-lineno">4007</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest._feed"></a><div id="_XMLPullParserTest._feed-def"><a name="L4008"></a><tt class="py-lineno">4008</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest._feed-toggle" onclick="return toggle('_XMLPullParserTest._feed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#_feed">_feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">chunk_size</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest._feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest._feed-expanded"><a name="L4009"></a><tt class="py-lineno">4009</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">chunk_size</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L4010"></a><tt class="py-lineno">4010</tt> <tt class="py-line"> <tt id="link-3753" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3753', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3754" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3754', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3755" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3755', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4011"></a><tt class="py-lineno">4011</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4012"></a><tt class="py-lineno">4012</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3756" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3756', 'data', 'link-1073');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4013"></a><tt class="py-lineno">4013</tt> <tt class="py-line"> <tt id="link-3757" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3757', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3758" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3758', 'feed', 'link-3364');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3759" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3759', 'data', 'link-1073');">data</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-name">chunk_size</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4014"></a><tt class="py-lineno">4014</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest._close_and_return_root"></a><div id="_XMLPullParserTest._close_and_return_root-def"><a name="L4015"></a><tt class="py-lineno">4015</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest._close_and_return_root-toggle" onclick="return toggle('_XMLPullParserTest._close_and_return_root');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#_close_and_return_root">_close_and_return_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest._close_and_return_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest._close_and_return_root-expanded"><a name="L4016"></a><tt class="py-lineno">4016</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'ElementTree'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3760" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3760', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L4017"></a><tt class="py-lineno">4017</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree's API is a bit unwieldy in Py3.4</tt> </tt>
+<a name="L4018"></a><tt class="py-lineno">4018</tt> <tt class="py-line"> <tt id="link-3761" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3761', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3762" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3762', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3763" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#_close_and_return_root"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3763', '_close_and_return_root', 'link-3763');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4019"></a><tt class="py-lineno">4019</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4020"></a><tt class="py-lineno">4020</tt> <tt class="py-line"> <tt id="link-3764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3764', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3765" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3765', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3766" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3724', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3972"></a><tt class="py-lineno">3972</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3725', 'root', 'link-50');">root</a></tt> </tt>
-</div><a name="L3973"></a><tt class="py-lineno">3973</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.assert_event_tags"></a><div id="_XMLPullParserTest.assert_event_tags-def"><a name="L3974"></a><tt class="py-lineno">3974</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.assert_event_tags-toggle" onclick="return toggle('_XMLPullParserTest.assert_event_tags');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags">assert_event_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.assert_event_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.assert_event_tags-expanded"><a name="L3975"></a><tt class="py-lineno">3975</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-3726" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3726', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3727" class="py-name" targets="Method lxml.etree.HTMLPullParser.read_events()=lxml.etree.HTMLPullParser-class.html#read_events,Method lxml.etree.XMLPullParser.read_events()=lxml.etree.XMLPullParser-class.html#read_events"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3727', 'read_events', 'link-3727');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3976"></a><tt class="py-lineno">3976</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-3728" class="py-name" targets="Variable lxml.html.FormElement.action=lxml.html.FormElement-class.html#action"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3728', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3729" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3766', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4021"></a><tt class="py-lineno">4021</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3767', 'root', 'link-50');">root</a></tt> </tt>
+</div><a name="L4022"></a><tt class="py-lineno">4022</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.assert_event_tags"></a><div id="_XMLPullParserTest.assert_event_tags-def"><a name="L4023"></a><tt class="py-lineno">4023</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.assert_event_tags-toggle" onclick="return toggle('_XMLPullParserTest.assert_event_tags');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags">assert_event_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.assert_event_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.assert_event_tags-expanded"><a name="L4024"></a><tt class="py-lineno">4024</tt> <tt class="py-line"> <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-3768" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3768', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3769" class="py-name" targets="Method lxml.etree.HTMLPullParser.read_events()=lxml.etree.HTMLPullParser-class.html#read_events,Method lxml.etree.XMLPullParser.read_events()=lxml.etree.XMLPullParser-class.html#read_events"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3769', 'read_events', 'link-3769');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4025"></a><tt class="py-lineno">4025</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt id="link-3770" class="py-name" targets="Variable lxml.html.FormElement.action=lxml.html.FormElement-class.html#action"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3770', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3771" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3729', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-3730" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3730', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3977"></a><tt class="py-lineno">3977</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3978"></a><tt class="py-lineno">3978</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_simple_xml"></a><div id="_XMLPullParserTest.test_simple_xml-def"><a name="L3979"></a><tt class="py-lineno">3979</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_simple_xml-toggle" onclick="return toggle('_XMLPullParserTest.test_simple_xml');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_simple_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_simple_xml-expanded"><a name="L3980"></a><tt class="py-lineno">3980</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chunk_size</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3981"></a><tt class="py-lineno">3981</tt> <tt class="py-line"> <tt class="py-comment">#with self.subTest(chunk_size=chunk_size):</tt> </tt>
-<a name="L3982"></a><tt class="py-lineno">3982</tt> <tt class="py-line"> <tt id="link-3731" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3731', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3732" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3732', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3733" class="py-name" targets="Class lxml.etree.XMLPullParser=lxml.etree.XMLPullParser-class.html"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3733', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3983"></a><tt class="py-lineno">3983</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3734" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags,Method lxml.tests.test_etree.XMLPullParserTest.assert_event_tags()=lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3734', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3735" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3735', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3984"></a><tt class="py-lineno">3984</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3736" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest._feed()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#_feed"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3736', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3737" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3737', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3985"></a><tt class="py-lineno">3985</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3738" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3738', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3739" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3739', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3986"></a><tt class="py-lineno">3986</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3740" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3740', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3741" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3741', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3987"></a><tt class="py-lineno">3987</tt> <tt class="py-line"> <tt class="py-string">"<root>\n <element key='value'>text</element"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3988"></a><tt class="py-lineno">3988</tt> <tt class="py-line"> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3989"></a><tt class="py-lineno">3989</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3742', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3743" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3743', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3990"></a><tt class="py-lineno">3990</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3744" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3744', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3745" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3745', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3991"></a><tt class="py-lineno">3991</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3746" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3746', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3747" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3747', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3992"></a><tt class="py-lineno">3992</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3748" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3748', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3749" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3749', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3993"></a><tt class="py-lineno">3993</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3750" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3750', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3751" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3751', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3994"></a><tt class="py-lineno">3994</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3752" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3752', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3753" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3753', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
-<a name="L3995"></a><tt class="py-lineno">3995</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3996"></a><tt class="py-lineno">3996</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3997"></a><tt class="py-lineno">3997</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3998"></a><tt class="py-lineno">3998</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3754" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3754', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3755" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3755', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L3999"></a><tt class="py-lineno">3999</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3756', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3757" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3757', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4000"></a><tt class="py-lineno">4000</tt> <tt class="py-line"> <tt id="link-3758" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3758', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3759" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3759', '_close_and_return_root', 'link-3721');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3760" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3760', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4001"></a><tt class="py-lineno">4001</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3761" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3761', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3762" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3771', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt id="link-3772" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3772', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L4026"></a><tt class="py-lineno">4026</tt> <tt class="py-line"> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4027"></a><tt class="py-lineno">4027</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_simple_xml"></a><div id="_XMLPullParserTest.test_simple_xml-def"><a name="L4028"></a><tt class="py-lineno">4028</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_simple_xml-toggle" onclick="return toggle('_XMLPullParserTest.test_simple_xml');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml">test_simple_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_simple_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_simple_xml-expanded"><a name="L4029"></a><tt class="py-lineno">4029</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">chunk_size</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4030"></a><tt class="py-lineno">4030</tt> <tt class="py-line"> <tt class="py-comment">#with self.subTest(chunk_size=chunk_size):</tt> </tt>
+<a name="L4031"></a><tt class="py-lineno">4031</tt> <tt class="py-line"> <tt id="link-3773" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3773', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3774" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3774', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3775" class="py-name" targets="Class lxml.etree.XMLPullParser=lxml.etree.XMLPullParser-class.html"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3775', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4032"></a><tt class="py-lineno">4032</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3776" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#assert_event_tags,Method lxml.tests.test_etree.XMLPullParserTest.assert_event_tags()=lxml.tests.test_etree.XMLPullParserTest-class.html#assert_event_tags"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3776', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3777" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3777', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4033"></a><tt class="py-lineno">4033</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3778" class="py-name" targets="Method lxml.tests.test_elementtree._XMLPullParserTest._feed()=lxml.tests.test_elementtree._XMLPullParserTest-class.html#_feed"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3778', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3779" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3779', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4034"></a><tt class="py-lineno">4034</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3780" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3780', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3781" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3781', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4035"></a><tt class="py-lineno">4035</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3782', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3783" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3783', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L4036"></a><tt class="py-lineno">4036</tt> <tt class="py-line"> <tt class="py-string">"<root>\n <element key='value'>text</element"</tt><tt class="py-op">,</tt> </tt>
+<a name="L4037"></a><tt class="py-lineno">4037</tt> <tt class="py-line"> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4038"></a><tt class="py-lineno">4038</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3784" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3784', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3785" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3785', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4039"></a><tt class="py-lineno">4039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3786" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3786', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3787" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3787', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4040"></a><tt class="py-lineno">4040</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3788" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3788', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3789" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3789', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4041"></a><tt class="py-lineno">4041</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3790" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3790', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3791" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3791', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4042"></a><tt class="py-lineno">4042</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3792" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3792', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3793" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3793', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4043"></a><tt class="py-lineno">4043</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3794" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3794', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3795" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3795', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
+<a name="L4044"></a><tt class="py-lineno">4044</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4045"></a><tt class="py-lineno">4045</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4046"></a><tt class="py-lineno">4046</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4047"></a><tt class="py-lineno">4047</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3796" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3796', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3797" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3797', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L4048"></a><tt class="py-lineno">4048</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3798" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3798', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3799" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3799', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4049"></a><tt class="py-lineno">4049</tt> <tt class="py-line"> <tt id="link-3800" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3800', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3801" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3801', '_close_and_return_root', 'link-3763');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3802" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3802', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4050"></a><tt class="py-lineno">4050</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3803" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3803', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3804" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3762', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4002"></a><tt class="py-lineno">4002</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_feed_while_iterating"></a><div id="_XMLPullParserTest.test_feed_while_iterating-def"><a name="L4003"></a><tt class="py-lineno">4003</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_feed_while_iterating-toggle" onclick="return toggle('_XMLPullParserTest.test_feed_while_iterating');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_feed_while_iterating-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_feed_while_iterating-expanded"><a name="L4004"></a><tt class="py-lineno">4004</tt> <tt class="py-line"> <tt id="link-3763" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3763', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3764" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3804', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4051"></a><tt class="py-lineno">4051</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_feed_while_iterating"></a><div id="_XMLPullParserTest.test_feed_while_iterating-def"><a name="L4052"></a><tt class="py-lineno">4052</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_feed_while_iterating-toggle" onclick="return toggle('_XMLPullParserTest.test_feed_while_iterating');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_feed_while_iterating">test_feed_while_iterating</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_feed_while_iterating-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_feed_while_iterating-expanded"><a name="L4053"></a><tt class="py-lineno">4053</tt> <tt class="py-line"> <tt id="link-3805" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3805', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3806" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3764', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3765" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3765', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4005"></a><tt class="py-lineno">4005</tt> <tt class="py-line"> <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-3766" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3766', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3767" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3767', 'read_events', 'link-3727');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4006"></a><tt class="py-lineno">4006</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3768" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3768', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3769" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3769', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n <element key='value'>text</element>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4007"></a><tt class="py-lineno">4007</tt> <tt class="py-line"> <tt id="link-3770" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3770', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-3771" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3806', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3807" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3807', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4054"></a><tt class="py-lineno">4054</tt> <tt class="py-line"> <tt class="py-name">it</tt> <tt class="py-op">=</tt> <tt id="link-3808" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3808', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3809" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3809', 'read_events', 'link-3769');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4055"></a><tt class="py-lineno">4055</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3810" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3810', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3811" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3811', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n <element key='value'>text</element>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4056"></a><tt class="py-lineno">4056</tt> <tt class="py-line"> <tt id="link-3812" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3812', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-3813" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3771', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
-<a name="L4008"></a><tt class="py-lineno">4008</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-3772" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3772', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3773" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3813', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
+<a name="L4057"></a><tt class="py-lineno">4057</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-3814" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3814', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3815" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3773', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4009"></a><tt class="py-lineno">4009</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3774" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3774', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3775" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3775', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4010"></a><tt class="py-lineno">4010</tt> <tt class="py-line"> <tt id="link-3776" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3776', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-3777" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3815', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4058"></a><tt class="py-lineno">4058</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3816" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3816', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3817" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3817', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4059"></a><tt class="py-lineno">4059</tt> <tt class="py-line"> <tt id="link-3818" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3818', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-3819" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3777', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
-<a name="L4011"></a><tt class="py-lineno">4011</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-3778" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3778', 'action', 'link-3728');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3779" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3819', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
+<a name="L4060"></a><tt class="py-lineno">4060</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-3820" class="py-name"><a title="lxml.html.FormElement.action" class="py-name" href="#" onclick="return doclink('link-3820', 'action', 'link-3770');">action</a></tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-3821" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3779', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4012"></a><tt class="py-lineno">4012</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L4013"></a><tt class="py-lineno">4013</tt> <tt class="py-line"> <tt id="link-3780" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3821', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4061"></a><tt class="py-lineno">4061</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4062"></a><tt class="py-lineno">4062</tt> <tt class="py-line"> <tt id="link-3822" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3780', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
-<a name="L4014"></a><tt class="py-lineno">4014</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt>
-<a name="L4015"></a><tt class="py-lineno">4015</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L4016"></a><tt class="py-lineno">4016</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L4017"></a><tt class="py-lineno">4017</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4018"></a><tt class="py-lineno">4018</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_simple_xml_with_ns"></a><div id="_XMLPullParserTest.test_simple_xml_with_ns-def"><a name="L4019"></a><tt class="py-lineno">4019</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_simple_xml_with_ns-toggle" onclick="return toggle('_XMLPullParserTest.test_simple_xml_with_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_simple_xml_with_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_simple_xml_with_ns-expanded"><a name="L4020"></a><tt class="py-lineno">4020</tt> <tt class="py-line"> <tt id="link-3781" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3781', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3782', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3783', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4021"></a><tt class="py-lineno">4021</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3784" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3784', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3785" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3785', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4022"></a><tt class="py-lineno">4022</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3786" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3786', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3787" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3787', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4023"></a><tt class="py-lineno">4023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3788" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3788', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3789" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3789', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4024"></a><tt class="py-lineno">4024</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3790" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3790', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3791" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3791', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root xmlns='namespace'>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4025"></a><tt class="py-lineno">4025</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3792" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3792', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3793" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3793', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4026"></a><tt class="py-lineno">4026</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3794" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3794', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3795" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3795', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4027"></a><tt class="py-lineno">4027</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3796" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3796', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3797" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3797', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4028"></a><tt class="py-lineno">4028</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3798" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3798', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3799" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3799', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4029"></a><tt class="py-lineno">4029</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3800" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3800', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3801" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3801', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4030"></a><tt class="py-lineno">4030</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3802" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3802', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3803" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3803', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4031"></a><tt class="py-lineno">4031</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3804" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3804', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3805" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3805', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4032"></a><tt class="py-lineno">4032</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3806" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3806', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3807" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3807', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
-<a name="L4033"></a><tt class="py-lineno">4033</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4034"></a><tt class="py-lineno">4034</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4035"></a><tt class="py-lineno">4035</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4036"></a><tt class="py-lineno">4036</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3808" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3808', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3809" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3809', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4037"></a><tt class="py-lineno">4037</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3810" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3810', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3811" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3811', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4038"></a><tt class="py-lineno">4038</tt> <tt class="py-line"> <tt id="link-3812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3812', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3813" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3813', '_close_and_return_root', 'link-3721');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3814" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3814', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4039"></a><tt class="py-lineno">4039</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3815" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3815', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3816" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3822', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">it</tt><tt class="py-op">)</tt> </tt>
+<a name="L4063"></a><tt class="py-lineno">4063</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt>
+<a name="L4064"></a><tt class="py-lineno">4064</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L4065"></a><tt class="py-lineno">4065</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4066"></a><tt class="py-lineno">4066</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4067"></a><tt class="py-lineno">4067</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_simple_xml_with_ns"></a><div id="_XMLPullParserTest.test_simple_xml_with_ns-def"><a name="L4068"></a><tt class="py-lineno">4068</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_simple_xml_with_ns-toggle" onclick="return toggle('_XMLPullParserTest.test_simple_xml_with_ns');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_simple_xml_with_ns">test_simple_xml_with_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_simple_xml_with_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_simple_xml_with_ns-expanded"><a name="L4069"></a><tt class="py-lineno">4069</tt> <tt class="py-line"> <tt id="link-3823" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3823', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3824" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3824', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3825" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3825', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4070"></a><tt class="py-lineno">4070</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3826" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3826', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3827" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3827', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4071"></a><tt class="py-lineno">4071</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3828" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3828', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3829" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3829', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4072"></a><tt class="py-lineno">4072</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3830" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3830', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3831" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3831', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4073"></a><tt class="py-lineno">4073</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3832" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3832', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3833" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3833', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root xmlns='namespace'>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4074"></a><tt class="py-lineno">4074</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3834" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3834', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3835" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3835', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4075"></a><tt class="py-lineno">4075</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3836" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3836', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3837" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3837', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4076"></a><tt class="py-lineno">4076</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3838" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3838', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3839" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3839', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4077"></a><tt class="py-lineno">4077</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3840" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3840', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3841" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3841', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4078"></a><tt class="py-lineno">4078</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3842" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3842', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3843" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3843', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4079"></a><tt class="py-lineno">4079</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3844" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3844', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3845" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3845', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4080"></a><tt class="py-lineno">4080</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3846" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3846', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3847" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3847', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4081"></a><tt class="py-lineno">4081</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3848" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3848', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3849" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3849', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
+<a name="L4082"></a><tt class="py-lineno">4082</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4083"></a><tt class="py-lineno">4083</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4084"></a><tt class="py-lineno">4084</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4085"></a><tt class="py-lineno">4085</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3850" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3850', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3851" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3851', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4086"></a><tt class="py-lineno">4086</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3852" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3852', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3853" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3853', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4087"></a><tt class="py-lineno">4087</tt> <tt class="py-line"> <tt id="link-3854" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3854', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3855" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3855', '_close_and_return_root', 'link-3763');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3856" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3856', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4088"></a><tt class="py-lineno">4088</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3857', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3858" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3816', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}root'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4040"></a><tt class="py-lineno">4040</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_ns_events"></a><div id="_XMLPullParserTest.test_ns_events-def"><a name="L4041"></a><tt class="py-lineno">4041</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_ns_events-toggle" onclick="return toggle('_XMLPullParserTest.test_ns_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_ns_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_ns_events-expanded"><a name="L4042"></a><tt class="py-lineno">4042</tt> <tt class="py-line"> <tt id="link-3817" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3817', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3818" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3818', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3819" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3819', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4043"></a><tt class="py-lineno">4043</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3820" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3820', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3821" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3821', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4044"></a><tt class="py-lineno">4044</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3822" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3822', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3823" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3823', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root xmlns='namespace'>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4045"></a><tt class="py-lineno">4045</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L4046"></a><tt class="py-lineno">4046</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-3824" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3824', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3825" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3825', 'read_events', 'link-3727');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4047"></a><tt class="py-lineno">4047</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'namespace'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4048"></a><tt class="py-lineno">4048</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3826" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3826', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3827" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3827', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4049"></a><tt class="py-lineno">4049</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3828" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3828', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3829" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3829', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4050"></a><tt class="py-lineno">4050</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3830" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3830', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3831" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3831', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4051"></a><tt class="py-lineno">4051</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3832" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3832', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3833" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3833', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4052"></a><tt class="py-lineno">4052</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3834" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3834', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3835" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3835', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4053"></a><tt class="py-lineno">4053</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-3836" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3836', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3837" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
-lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3837', 'read_events', 'link-3727');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4054"></a><tt class="py-lineno">4054</tt> <tt class="py-line"> <tt id="link-3838" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3838', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3839" class="py-name"><a title="lxml.etree.TreeBuilder.close
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3858', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{namespace}root'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4089"></a><tt class="py-lineno">4089</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_ns_events"></a><div id="_XMLPullParserTest.test_ns_events-def"><a name="L4090"></a><tt class="py-lineno">4090</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_ns_events-toggle" onclick="return toggle('_XMLPullParserTest.test_ns_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_ns_events">test_ns_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_ns_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_ns_events-expanded"><a name="L4091"></a><tt class="py-lineno">4091</tt> <tt class="py-line"> <tt id="link-3859" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3859', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3860" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3860', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3861" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3861', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4092"></a><tt class="py-lineno">4092</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3862" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3862', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3863" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3863', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4093"></a><tt class="py-lineno">4093</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3864" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3864', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3865" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3865', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root xmlns='namespace'>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4094"></a><tt class="py-lineno">4094</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L4095"></a><tt class="py-lineno">4095</tt> <tt class="py-line"> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-3866" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3866', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3867" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3867', 'read_events', 'link-3769');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4096"></a><tt class="py-lineno">4096</tt> <tt class="py-line"> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">'namespace'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4097"></a><tt class="py-lineno">4097</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3868" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3868', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3869" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3869', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4098"></a><tt class="py-lineno">4098</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3870" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3870', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3871" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3871', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4099"></a><tt class="py-lineno">4099</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3872" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3872', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3873" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3873', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element>text</element>tail\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4100"></a><tt class="py-lineno">4100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3874" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3874', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3875" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3875', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<empty-element/>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4101"></a><tt class="py-lineno">4101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3876" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3876', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3877" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3877', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4102"></a><tt class="py-lineno">4102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-3878" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3878', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3879" class="py-name"><a title="lxml.etree.HTMLPullParser.read_events
+lxml.etree.XMLPullParser.read_events" class="py-name" href="#" onclick="return doclink('link-3879', 'read_events', 'link-3769');">read_events</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4103"></a><tt class="py-lineno">4103</tt> <tt class="py-line"> <tt id="link-3880" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3880', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3881" class="py-name"><a title="lxml.etree.TreeBuilder.close
lxml.etree._FeedParser.close
-lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3839', 'close', 'link-2771');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4055"></a><tt class="py-lineno">4055</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_events"></a><div id="_XMLPullParserTest.test_events-def"><a name="L4056"></a><tt class="py-lineno">4056</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_events-toggle" onclick="return toggle('_XMLPullParserTest.test_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_events-expanded"><a name="L4057"></a><tt class="py-lineno">4057</tt> <tt class="py-line"> <tt id="link-3840" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3840', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3841" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3841', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3842" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3842', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4058"></a><tt class="py-lineno">4058</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3843" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3843', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3844" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3844', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root/>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4059"></a><tt class="py-lineno">4059</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3845" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3845', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3846" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3846', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4060"></a><tt class="py-lineno">4060</tt> <tt class="py-line"> </tt>
-<a name="L4061"></a><tt class="py-lineno">4061</tt> <tt class="py-line"> <tt id="link-3847" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3847', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3848" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3848', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3849" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3849', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4062"></a><tt class="py-lineno">4062</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3850" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3850', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3851" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3851', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4063"></a><tt class="py-lineno">4063</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3852" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3852', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3853" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3853', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4064"></a><tt class="py-lineno">4064</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3854" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3854', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3855" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3855', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4065"></a><tt class="py-lineno">4065</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3856" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3856', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3857" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3857', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4066"></a><tt class="py-lineno">4066</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3858" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3858', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3859" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3859', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4067"></a><tt class="py-lineno">4067</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3860" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3860', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3861" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3861', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4068"></a><tt class="py-lineno">4068</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3862" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3862', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3863" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3863', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4069"></a><tt class="py-lineno">4069</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3864" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3864', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3865" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3865', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4070"></a><tt class="py-lineno">4070</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3866" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3866', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3867" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3867', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L4071"></a><tt class="py-lineno">4071</tt> <tt class="py-line"> <tt class="py-string">"<element xmlns='foo'>text<empty-element/></element>tail\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4072"></a><tt class="py-lineno">4072</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3868" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3868', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3869" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3869', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
-<a name="L4073"></a><tt class="py-lineno">4073</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4074"></a><tt class="py-lineno">4074</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4075"></a><tt class="py-lineno">4075</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4076"></a><tt class="py-lineno">4076</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4077"></a><tt class="py-lineno">4077</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4078"></a><tt class="py-lineno">4078</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3870" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3870', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3871" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3871', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4079"></a><tt class="py-lineno">4079</tt> <tt class="py-line"> <tt id="link-3872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3872', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3873" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3873', '_close_and_return_root', 'link-3721');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3874" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3874', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4080"></a><tt class="py-lineno">4080</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3875" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3875', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3876" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3876', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4081"></a><tt class="py-lineno">4081</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3877" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3877', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3878" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.close" class="py-name" href="#" onclick="return doclink('link-3881', 'close', 'link-2813');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4104"></a><tt class="py-lineno">4104</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_events"></a><div id="_XMLPullParserTest.test_events-def"><a name="L4105"></a><tt class="py-lineno">4105</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_events-toggle" onclick="return toggle('_XMLPullParserTest.test_events');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events">test_events</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_events-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_events-expanded"><a name="L4106"></a><tt class="py-lineno">4106</tt> <tt class="py-line"> <tt id="link-3882" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3882', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3883" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3883', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3884" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3884', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4107"></a><tt class="py-lineno">4107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3885" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3885', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3886" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3886', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root/>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4108"></a><tt class="py-lineno">4108</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3887" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3887', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3888" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3888', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4109"></a><tt class="py-lineno">4109</tt> <tt class="py-line"> </tt>
+<a name="L4110"></a><tt class="py-lineno">4110</tt> <tt class="py-line"> <tt id="link-3889" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3889', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3890" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3890', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3891" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3891', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4111"></a><tt class="py-lineno">4111</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3892" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3892', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3893" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3893', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4112"></a><tt class="py-lineno">4112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3894" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3894', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3895" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3895', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4113"></a><tt class="py-lineno">4113</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3896" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3896', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3897" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3897', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4114"></a><tt class="py-lineno">4114</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3898" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3898', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3899" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3899', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4115"></a><tt class="py-lineno">4115</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3900" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3900', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3901" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3901', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4116"></a><tt class="py-lineno">4116</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3902" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3902', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3903" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3903', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4117"></a><tt class="py-lineno">4117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3904" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3904', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3905" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3905', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4118"></a><tt class="py-lineno">4118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3906" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3906', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3907" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3907', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4119"></a><tt class="py-lineno">4119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3908" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3908', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3909" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3909', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L4120"></a><tt class="py-lineno">4120</tt> <tt class="py-line"> <tt class="py-string">"<element xmlns='foo'>text<empty-element/></element>tail\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4121"></a><tt class="py-lineno">4121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3910" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3910', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3911" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3911', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
+<a name="L4122"></a><tt class="py-lineno">4122</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4123"></a><tt class="py-lineno">4123</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4124"></a><tt class="py-lineno">4124</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4125"></a><tt class="py-lineno">4125</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4126"></a><tt class="py-lineno">4126</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4127"></a><tt class="py-lineno">4127</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3912" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3912', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3913" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3913', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4128"></a><tt class="py-lineno">4128</tt> <tt class="py-line"> <tt id="link-3914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3914', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3915" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3915', '_close_and_return_root', 'link-3763');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3916" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3916', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4129"></a><tt class="py-lineno">4129</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3917" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3917', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3918" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3918', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4130"></a><tt class="py-lineno">4130</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3919" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3919', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3920" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3878', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L4082"></a><tt class="py-lineno">4082</tt> <tt class="py-line"> </tt>
-<a name="L4083"></a><tt class="py-lineno">4083</tt> <tt class="py-line"> <tt id="link-3879" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3879', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3880" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3880', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3881" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3881', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4084"></a><tt class="py-lineno">4084</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3882" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3882', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3883" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3883', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4085"></a><tt class="py-lineno">4085</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3884" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3884', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3885" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3885', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4086"></a><tt class="py-lineno">4086</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3886" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3886', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3887" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3887', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4087"></a><tt class="py-lineno">4087</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3888" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3888', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3889" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3889', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4088"></a><tt class="py-lineno">4088</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3890" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3890', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3891" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3891', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4089"></a><tt class="py-lineno">4089</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3892" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3892', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3893" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3893', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4090"></a><tt class="py-lineno">4090</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3894" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3894', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3895" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3895', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4091"></a><tt class="py-lineno">4091</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3896" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3896', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3897" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3897', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4092"></a><tt class="py-lineno">4092</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3898" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3898', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3899" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3899', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L4093"></a><tt class="py-lineno">4093</tt> <tt class="py-line"> <tt class="py-string">"<element xmlns='foo'>text<empty-element/></element>tail\n"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4094"></a><tt class="py-lineno">4094</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3900" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3900', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3901" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3901', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
-<a name="L4095"></a><tt class="py-lineno">4095</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4096"></a><tt class="py-lineno">4096</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L4097"></a><tt class="py-lineno">4097</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4098"></a><tt class="py-lineno">4098</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3902" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3902', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3903" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3903', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4099"></a><tt class="py-lineno">4099</tt> <tt class="py-line"> <tt id="link-3904" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3904', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3905" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3905', '_close_and_return_root', 'link-3721');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3906" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3906', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4100"></a><tt class="py-lineno">4100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3907" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3907', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3908" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3920', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L4131"></a><tt class="py-lineno">4131</tt> <tt class="py-line"> </tt>
+<a name="L4132"></a><tt class="py-lineno">4132</tt> <tt class="py-line"> <tt id="link-3921" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3921', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3922" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3922', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3923" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3923', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4133"></a><tt class="py-lineno">4133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3924" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3924', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3925" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3925', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<!-- comment -->\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4134"></a><tt class="py-lineno">4134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3926" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3926', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3927" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3927', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4135"></a><tt class="py-lineno">4135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3928" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3928', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3929" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3929', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<root>\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4136"></a><tt class="py-lineno">4136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3930" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3930', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3931" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3931', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4137"></a><tt class="py-lineno">4137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3932" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3932', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3933" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3933', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<element key='value'>text</element"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4138"></a><tt class="py-lineno">4138</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3934" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3934', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3935" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3935', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'element'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4139"></a><tt class="py-lineno">4139</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3936" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3936', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3937" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3937', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">">\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4140"></a><tt class="py-lineno">4140</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3938" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3938', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3939" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3939', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4141"></a><tt class="py-lineno">4141</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3940" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3940', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3941" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3941', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L4142"></a><tt class="py-lineno">4142</tt> <tt class="py-line"> <tt class="py-string">"<element xmlns='foo'>text<empty-element/></element>tail\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4143"></a><tt class="py-lineno">4143</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3942" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3942', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3943" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3943', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt> </tt>
+<a name="L4144"></a><tt class="py-lineno">4144</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4145"></a><tt class="py-lineno">4145</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'{foo}empty-element'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L4146"></a><tt class="py-lineno">4146</tt> <tt class="py-line"> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4147"></a><tt class="py-lineno">4147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3944" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3944', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3945" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3945', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"</root>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4148"></a><tt class="py-lineno">4148</tt> <tt class="py-line"> <tt id="link-3946" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3946', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3947" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._close_and_return_root" class="py-name" href="#" onclick="return doclink('link-3947', '_close_and_return_root', 'link-3763');">_close_and_return_root</a></tt><tt class="py-op">(</tt><tt id="link-3948" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3948', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4149"></a><tt class="py-lineno">4149</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3949" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3949', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3950" class="py-name"><a title="lxml.etree._Comment.tag
lxml.etree._Element.tag
lxml.etree._Entity.tag
lxml.etree._ProcessingInstruction.tag
lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3908', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4101"></a><tt class="py-lineno">4101</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_events_sequence"></a><div id="_XMLPullParserTest.test_events_sequence-def"><a name="L4102"></a><tt class="py-lineno">4102</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_events_sequence-toggle" onclick="return toggle('_XMLPullParserTest.test_events_sequence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_events_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_events_sequence-expanded"><a name="L4103"></a><tt class="py-lineno">4103</tt> <tt class="py-line"> <tt class="py-comment"># Test that events can be some sequence that's not just a tuple or list</tt> </tt>
-<a name="L4104"></a><tt class="py-lineno">4104</tt> <tt class="py-line"> <tt class="py-name">eventset</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">}</tt> </tt>
-<a name="L4105"></a><tt class="py-lineno">4105</tt> <tt class="py-line"> <tt id="link-3909" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3909', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3910" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3910', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3911" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3911', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-name">eventset</tt><tt class="py-op">)</tt> </tt>
-<a name="L4106"></a><tt class="py-lineno">4106</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3912" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3912', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3913" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3913', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<foo>bar</foo>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4107"></a><tt class="py-lineno">4107</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3914" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3914', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3915" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3915', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4108"></a><tt class="py-lineno">4108</tt> <tt class="py-line"> </tt>
-<a name="L4109"></a><tt class="py-lineno">4109</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">DummyIter</tt><tt class="py-op">:</tt> </tt>
-<a name="L4110"></a><tt class="py-lineno">4110</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4111"></a><tt class="py-lineno">4111</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-3916" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-3916', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4112"></a><tt class="py-lineno">4112</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__iter__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4113"></a><tt class="py-lineno">4113</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
-</div><a name="L4114"></a><tt class="py-lineno">4114</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__next__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L4115"></a><tt class="py-lineno">4115</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3917" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3950', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4150"></a><tt class="py-lineno">4150</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_events_sequence"></a><div id="_XMLPullParserTest.test_events_sequence-def"><a name="L4151"></a><tt class="py-lineno">4151</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_events_sequence-toggle" onclick="return toggle('_XMLPullParserTest.test_events_sequence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_events_sequence">test_events_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_events_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_events_sequence-expanded"><a name="L4152"></a><tt class="py-lineno">4152</tt> <tt class="py-line"> <tt class="py-comment"># Test that events can be some sequence that's not just a tuple or list</tt> </tt>
+<a name="L4153"></a><tt class="py-lineno">4153</tt> <tt class="py-line"> <tt class="py-name">eventset</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">}</tt> </tt>
+<a name="L4154"></a><tt class="py-lineno">4154</tt> <tt class="py-line"> <tt id="link-3951" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3951', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3952" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3952', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3953" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3953', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-name">eventset</tt><tt class="py-op">)</tt> </tt>
+<a name="L4155"></a><tt class="py-lineno">4155</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3954" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3954', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3955" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3955', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<foo>bar</foo>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4156"></a><tt class="py-lineno">4156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3956" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3956', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3957" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3957', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4157"></a><tt class="py-lineno">4157</tt> <tt class="py-line"> </tt>
+<a name="L4158"></a><tt class="py-lineno">4158</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">DummyIter</tt><tt class="py-op">:</tt> </tt>
+<a name="L4159"></a><tt class="py-lineno">4159</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4160"></a><tt class="py-lineno">4160</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt id="link-3958" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-3958', 'iter', 'link-551');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4161"></a><tt class="py-lineno">4161</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__iter__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4162"></a><tt class="py-lineno">4162</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L4163"></a><tt class="py-lineno">4163</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__next__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L4164"></a><tt class="py-lineno">4164</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-3959" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3917', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4116"></a><tt class="py-lineno">4116</tt> <tt class="py-line"> <tt id="link-3918" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3959', 'next', 'link-23');">next</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4165"></a><tt class="py-lineno">4165</tt> <tt class="py-line"> <tt id="link-3960" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
lxml.etree.ElementTextIterator.next
lxml.etree._ElementIterator.next
lxml.etree._ElementMatchIterator.next
lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3918', 'next', 'link-23');">next</a></tt> <tt class="py-op">=</tt> <tt id="link-3919" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.__next__()=lxml.etree.ElementDepthFirstIterator-class.html#__next__,Method lxml.etree.ElementTextIterator.__next__()=lxml.etree.ElementTextIterator-class.html#__next__,Method lxml.etree._ElementIterator.__next__()=lxml.etree._ElementIterator-class.html#__next__,Method lxml.etree._ElementMatchIterator.__next__()=lxml.etree._ElementMatchIterator-class.html#__next__,Method lxml.etree.iterparse.__next__()=lxml.etree.iterparse-class.html#__next__,Method lxml.etree.iterwalk.__next__()=lxml.etree.iterwalk-class.html#__next__"><a title="lxml.etree.ElementDepthFirstIterator.__next__
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-3960', 'next', 'link-23');">next</a></tt> <tt class="py-op">=</tt> <tt id="link-3961" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.__next__()=lxml.etree.ElementDepthFirstIterator-class.html#__next__,Method lxml.etree.ElementTextIterator.__next__()=lxml.etree.ElementTextIterator-class.html#__next__,Method lxml.etree._ElementIterator.__next__()=lxml.etree._ElementIterator-class.html#__next__,Method lxml.etree._ElementMatchIterator.__next__()=lxml.etree._ElementMatchIterator-class.html#__next__,Method lxml.etree.iterparse.__next__()=lxml.etree.iterparse-class.html#__next__,Method lxml.etree.iterwalk.__next__()=lxml.etree.iterwalk-class.html#__next__"><a title="lxml.etree.ElementDepthFirstIterator.__next__
lxml.etree.ElementTextIterator.__next__
lxml.etree._ElementIterator.__next__
lxml.etree._ElementMatchIterator.__next__
lxml.etree.iterparse.__next__
-lxml.etree.iterwalk.__next__" class="py-name" href="#" onclick="return doclink('link-3919', '__next__', 'link-3919');">__next__</a></tt> </tt>
-</div><a name="L4117"></a><tt class="py-lineno">4117</tt> <tt class="py-line"> </tt>
-<a name="L4118"></a><tt class="py-lineno">4118</tt> <tt class="py-line"> <tt id="link-3920" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3920', 'parser', 'link-3312');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3921" class="py-name"><a title="lxml.etree
+lxml.etree.iterwalk.__next__" class="py-name" href="#" onclick="return doclink('link-3961', '__next__', 'link-3961');">__next__</a></tt> </tt>
+</div><a name="L4166"></a><tt class="py-lineno">4166</tt> <tt class="py-line"> </tt>
+<a name="L4167"></a><tt class="py-lineno">4167</tt> <tt class="py-line"> <tt id="link-3962" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3962', 'parser', 'link-3354');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3963" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3921', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3922" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3922', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-name">DummyIter</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4119"></a><tt class="py-lineno">4119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3923" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3923', '_feed', 'link-3736');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3924" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3924', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<foo>bar</foo>"</tt><tt class="py-op">)</tt> </tt>
-<a name="L4120"></a><tt class="py-lineno">4120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3925" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
-lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3925', 'assert_event_tags', 'link-3734');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3926" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3926', 'parser', 'link-3312');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L4121"></a><tt class="py-lineno">4121</tt> <tt class="py-line"> </tt>
-<a name="_XMLPullParserTest.test_unknown_event"></a><div id="_XMLPullParserTest.test_unknown_event-def"><a name="L4122"></a><tt class="py-lineno">4122</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_unknown_event-toggle" onclick="return toggle('_XMLPullParserTest.test_unknown_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_unknown_event">test_unknown_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XMLPullParserTest.test_unknown_event-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_unknown_event-expanded"><a name="L4123"></a><tt class="py-lineno">4123</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L4124"></a><tt class="py-lineno">4124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3927" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3963', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3964" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3964', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-name">DummyIter</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4168"></a><tt class="py-lineno">4168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3965" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest._feed" class="py-name" href="#" onclick="return doclink('link-3965', '_feed', 'link-3778');">_feed</a></tt><tt class="py-op">(</tt><tt id="link-3966" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3966', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"<foo>bar</foo>"</tt><tt class="py-op">)</tt> </tt>
+<a name="L4169"></a><tt class="py-lineno">4169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3967" class="py-name"><a title="lxml.tests.test_elementtree._XMLPullParserTest.assert_event_tags
+lxml.tests.test_etree.XMLPullParserTest.assert_event_tags" class="py-name" href="#" onclick="return doclink('link-3967', 'assert_event_tags', 'link-3776');">assert_event_tags</a></tt><tt class="py-op">(</tt><tt id="link-3968" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3968', 'parser', 'link-3354');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L4170"></a><tt class="py-lineno">4170</tt> <tt class="py-line"> </tt>
+<a name="_XMLPullParserTest.test_unknown_event"></a><div id="_XMLPullParserTest.test_unknown_event-def"><a name="L4171"></a><tt class="py-lineno">4171</tt> <a class="py-toggle" href="#" id="_XMLPullParserTest.test_unknown_event-toggle" onclick="return toggle('_XMLPullParserTest.test_unknown_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._XMLPullParserTest-class.html#test_unknown_event">test_unknown_event</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XMLPullParserTest.test_unknown_event-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XMLPullParserTest.test_unknown_event-expanded"><a name="L4172"></a><tt class="py-lineno">4172</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L4173"></a><tt class="py-lineno">4173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3969" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3927', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3928" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3928', 'XMLPullParser', 'link-3733');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'bogus'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L4125"></a><tt class="py-lineno">4125</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L4126"></a><tt class="py-lineno">4126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L4127"></a><tt class="py-lineno">4127</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L4128"></a><tt class="py-lineno">4128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4129"></a><tt class="py-lineno">4129</tt> <tt class="py-line"> </tt>
-<a name="L4130"></a><tt class="py-lineno">4130</tt> <tt class="py-line"> </tt>
-<a name="L4131"></a><tt class="py-lineno">4131</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3929" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3969', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3970" class="py-name"><a title="lxml.etree.XMLPullParser" class="py-name" href="#" onclick="return doclink('link-3970', 'XMLPullParser', 'link-3775');">XMLPullParser</a></tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'bogus'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L4174"></a><tt class="py-lineno">4174</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L4175"></a><tt class="py-lineno">4175</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L4176"></a><tt class="py-lineno">4176</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4177"></a><tt class="py-lineno">4177</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4178"></a><tt class="py-lineno">4178</tt> <tt class="py-line"> </tt>
+<a name="L4179"></a><tt class="py-lineno">4179</tt> <tt class="py-line"> </tt>
+<a name="L4180"></a><tt class="py-lineno">4180</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3971" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3929', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeTestCase"></a><div id="ETreeTestCase-def"><a name="L4132"></a><tt class="py-lineno">4132</tt> <a class="py-toggle" href="#" id="ETreeTestCase-toggle" onclick="return toggle('ETreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreeTestCase-class.html">ETreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeTestCase-expanded"><a name="L4133"></a><tt class="py-lineno">4133</tt> <tt class="py-line"> <tt id="link-3930" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3971', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ETreeTestCase"></a><div id="ETreeTestCase-def"><a name="L4181"></a><tt class="py-lineno">4181</tt> <a class="py-toggle" href="#" id="ETreeTestCase-toggle" onclick="return toggle('ETreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreeTestCase-class.html">ETreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeTestCase-expanded"><a name="L4182"></a><tt class="py-lineno">4182</tt> <tt class="py-line"> <tt id="link-3972" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3930', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3931" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3972', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3973" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3931', 'etree', 'link-9');">etree</a></tt> </tt>
-</div><a name="L4134"></a><tt class="py-lineno">4134</tt> <tt class="py-line"> </tt>
-<a name="ETreePullTestCase"></a><div id="ETreePullTestCase-def"><a name="L4135"></a><tt class="py-lineno">4135</tt> <a class="py-toggle" href="#" id="ETreePullTestCase-toggle" onclick="return toggle('ETreePullTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreePullTestCase-class.html">ETreePullTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XMLPullParserTest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreePullTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreePullTestCase-expanded"><a name="L4136"></a><tt class="py-lineno">4136</tt> <tt class="py-line"> <tt id="link-3932" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3973', 'etree', 'link-9');">etree</a></tt> </tt>
+</div><a name="L4183"></a><tt class="py-lineno">4183</tt> <tt class="py-line"> </tt>
+<a name="ETreePullTestCase"></a><div id="ETreePullTestCase-def"><a name="L4184"></a><tt class="py-lineno">4184</tt> <a class="py-toggle" href="#" id="ETreePullTestCase-toggle" onclick="return toggle('ETreePullTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreePullTestCase-class.html">ETreePullTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XMLPullParserTest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreePullTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreePullTestCase-expanded"><a name="L4185"></a><tt class="py-lineno">4185</tt> <tt class="py-line"> <tt id="link-3974" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3932', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3933" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3974', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3975" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3933', 'etree', 'link-9');">etree</a></tt> </tt>
-</div><a name="L4137"></a><tt class="py-lineno">4137</tt> <tt class="py-line"> </tt>
-<a name="L4138"></a><tt class="py-lineno">4138</tt> <tt class="py-line"> </tt>
-<a name="L4139"></a><tt class="py-lineno">4139</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3934" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3975', 'etree', 'link-9');">etree</a></tt> </tt>
+</div><a name="L4186"></a><tt class="py-lineno">4186</tt> <tt class="py-line"> </tt>
+<a name="L4187"></a><tt class="py-lineno">4187</tt> <tt class="py-line"> </tt>
+<a name="L4188"></a><tt class="py-lineno">4188</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3976" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3934', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ElementTreeTestCase"></a><div id="ElementTreeTestCase-def"><a name="L4140"></a><tt class="py-lineno">4140</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase-toggle" onclick="return toggle('ElementTreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTreeTestCase-expanded"><a name="L4141"></a><tt class="py-lineno">4141</tt> <tt class="py-line"> <tt id="link-3935" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3976', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ElementTreeTestCase"></a><div id="ElementTreeTestCase-def"><a name="L4189"></a><tt class="py-lineno">4189</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase-toggle" onclick="return toggle('ElementTreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTreeTestCase-expanded"><a name="L4190"></a><tt class="py-lineno">4190</tt> <tt class="py-line"> <tt id="link-3977" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3935', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3936" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3977', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3978" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3936', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L4142"></a><tt class="py-lineno">4142</tt> <tt class="py-line"> </tt>
-<a name="L4143"></a><tt class="py-lineno">4143</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="ElementTreeTestCase.setUpClass"></a><div id="ElementTreeTestCase.setUpClass-def"><a name="L4144"></a><tt class="py-lineno">4144</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase.setUpClass-toggle" onclick="return toggle('ElementTreeTestCase.setUpClass');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass">setUpClass</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeTestCase.setUpClass-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreeTestCase.setUpClass-expanded"><a name="L4145"></a><tt class="py-lineno">4145</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">warnings</tt> </tt>
-<a name="L4146"></a><tt class="py-lineno">4146</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree warns about getiterator() in recent Pythons</tt> </tt>
-<a name="L4147"></a><tt class="py-lineno">4147</tt> <tt class="py-line"> <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">filterwarnings</tt><tt class="py-op">(</tt> </tt>
-<a name="L4148"></a><tt class="py-lineno">4148</tt> <tt class="py-line"> <tt class="py-string">'ignore'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4149"></a><tt class="py-lineno">4149</tt> <tt class="py-line"> <tt class="py-string">r'This method will be removed.*\.iter\(\).*instead'</tt><tt class="py-op">,</tt> </tt>
-<a name="L4150"></a><tt class="py-lineno">4150</tt> <tt class="py-line"> <tt class="py-name">PendingDeprecationWarning</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L4151"></a><tt class="py-lineno">4151</tt> <tt class="py-line"> </tt>
-<a name="L4152"></a><tt class="py-lineno">4152</tt> <tt class="py-line"> <tt id="link-3937" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3937', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4153"></a><tt class="py-lineno">4153</tt> <tt class="py-line"> <tt id="link-3938" class="py-name" targets="Class lxml.tests.test_elementtree.ElementTreeTestCase=lxml.tests.test_elementtree.ElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3938', 'ElementTreeTestCase', 'link-3938');">ElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L4154"></a><tt class="py-lineno">4154</tt> <tt class="py-line"> <tt id="link-3939" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3939', 'ElementTreeTestCase', 'link-3938');">ElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3940" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3940', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">,</tt> <tt id="link-3941" class="py-name"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-3941', 'ET_VERSION', 'link-13');">ET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L4155"></a><tt class="py-lineno">4155</tt> <tt class="py-line"> </tt>
-<a name="L4156"></a><tt class="py-lineno">4156</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3942" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3942', 'hasattr', 'link-3315');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3943" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3978', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L4191"></a><tt class="py-lineno">4191</tt> <tt class="py-line"> </tt>
+<a name="L4192"></a><tt class="py-lineno">4192</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="ElementTreeTestCase.setUpClass"></a><div id="ElementTreeTestCase.setUpClass-def"><a name="L4193"></a><tt class="py-lineno">4193</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase.setUpClass-toggle" onclick="return toggle('ElementTreeTestCase.setUpClass');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass">setUpClass</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeTestCase.setUpClass-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreeTestCase.setUpClass-expanded"><a name="L4194"></a><tt class="py-lineno">4194</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">warnings</tt> </tt>
+<a name="L4195"></a><tt class="py-lineno">4195</tt> <tt class="py-line"> <tt class="py-comment"># ElementTree warns about getiterator() in recent Pythons</tt> </tt>
+<a name="L4196"></a><tt class="py-lineno">4196</tt> <tt class="py-line"> <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">filterwarnings</tt><tt class="py-op">(</tt> </tt>
+<a name="L4197"></a><tt class="py-lineno">4197</tt> <tt class="py-line"> <tt class="py-string">'ignore'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4198"></a><tt class="py-lineno">4198</tt> <tt class="py-line"> <tt class="py-string">r'This method will be removed.*\.iter\(\).*instead'</tt><tt class="py-op">,</tt> </tt>
+<a name="L4199"></a><tt class="py-lineno">4199</tt> <tt class="py-line"> <tt class="py-name">PendingDeprecationWarning</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L4200"></a><tt class="py-lineno">4200</tt> <tt class="py-line"> </tt>
+<a name="L4201"></a><tt class="py-lineno">4201</tt> <tt class="py-line"> <tt id="link-3979" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3979', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4202"></a><tt class="py-lineno">4202</tt> <tt class="py-line"> <tt id="link-3980" class="py-name" targets="Class lxml.tests.test_elementtree.ElementTreeTestCase=lxml.tests.test_elementtree.ElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3980', 'ElementTreeTestCase', 'link-3980');">ElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L4203"></a><tt class="py-lineno">4203</tt> <tt class="py-line"> <tt id="link-3981" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3981', 'ElementTreeTestCase', 'link-3980');">ElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3982" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3982', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">,</tt> <tt id="link-3983" class="py-name"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-3983', 'ET_VERSION', 'link-13');">ET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L4204"></a><tt class="py-lineno">4204</tt> <tt class="py-line"> </tt>
+<a name="L4205"></a><tt class="py-lineno">4205</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3984" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3984', 'hasattr', 'link-3357');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3985" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3943', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'XMLPullParser'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="ElementTreePullTestCase"></a><div id="ElementTreePullTestCase-def"><a name="L4157"></a><tt class="py-lineno">4157</tt> <a class="py-toggle" href="#" id="ElementTreePullTestCase-toggle" onclick="return toggle('ElementTreePullTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreePullTestCase-class.html">ElementTreePullTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XMLPullParserTest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreePullTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreePullTestCase-expanded"><a name="L4158"></a><tt class="py-lineno">4158</tt> <tt class="py-line"> <tt id="link-3944" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3985', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'XMLPullParser'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="ElementTreePullTestCase"></a><div id="ElementTreePullTestCase-def"><a name="L4206"></a><tt class="py-lineno">4206</tt> <a class="py-toggle" href="#" id="ElementTreePullTestCase-toggle" onclick="return toggle('ElementTreePullTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreePullTestCase-class.html">ElementTreePullTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XMLPullParserTest</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreePullTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreePullTestCase-expanded"><a name="L4207"></a><tt class="py-lineno">4207</tt> <tt class="py-line"> <tt id="link-3986" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3944', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3945" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3986', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3987" class="py-name"><a title="lxml.etree.ElementTree
xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3945', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-</div><a name="L4159"></a><tt class="py-lineno">4159</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L4160"></a><tt class="py-lineno">4160</tt> <tt class="py-line"> <tt id="link-3946" class="py-name" targets="Variable lxml.tests.test_elementtree.ElementTreePullTestCase=lxml.tests.test_elementtree-module.html#ElementTreePullTestCase"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3946', 'ElementTreePullTestCase', 'link-3946');">ElementTreePullTestCase</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L4161"></a><tt class="py-lineno">4161</tt> <tt class="py-line"> </tt>
-<a name="L4162"></a><tt class="py-lineno">4162</tt> <tt class="py-line"> </tt>
-<a name="L4163"></a><tt class="py-lineno">4163</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3947" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3947', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="CElementTreeTestCase"></a><div id="CElementTreeTestCase-def"><a name="L4164"></a><tt class="py-lineno">4164</tt> <a class="py-toggle" href="#" id="CElementTreeTestCase-toggle" onclick="return toggle('CElementTreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CElementTreeTestCase-expanded"><a name="L4165"></a><tt class="py-lineno">4165</tt> <tt class="py-line"> <tt id="link-3948" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3987', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+</div><a name="L4208"></a><tt class="py-lineno">4208</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L4209"></a><tt class="py-lineno">4209</tt> <tt class="py-line"> <tt id="link-3988" class="py-name" targets="Variable lxml.tests.test_elementtree.ElementTreePullTestCase=lxml.tests.test_elementtree-module.html#ElementTreePullTestCase"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3988', 'ElementTreePullTestCase', 'link-3988');">ElementTreePullTestCase</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L4210"></a><tt class="py-lineno">4210</tt> <tt class="py-line"> </tt>
+<a name="L4211"></a><tt class="py-lineno">4211</tt> <tt class="py-line"> </tt>
+<a name="L4212"></a><tt class="py-lineno">4212</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3989" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3989', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="CElementTreeTestCase"></a><div id="CElementTreeTestCase-def"><a name="L4213"></a><tt class="py-lineno">4213</tt> <a class="py-toggle" href="#" id="CElementTreeTestCase-toggle" onclick="return toggle('CElementTreeTestCase');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CElementTreeTestCase-expanded"><a name="L4214"></a><tt class="py-lineno">4214</tt> <tt class="py-line"> <tt id="link-3990" class="py-name"><a title="lxml.etree
lxml.sax.ElementTreeContentHandler.etree
lxml.tests.test_elementtree.CElementTreeTestCase.etree
lxml.tests.test_elementtree._ETreeTestCaseBase.etree
lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3948', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3949" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3949', 'cElementTree', 'link-12');">cElementTree</a></tt> </tt>
-</div><a name="L4166"></a><tt class="py-lineno">4166</tt> <tt class="py-line"> </tt>
-<a name="L4167"></a><tt class="py-lineno">4167</tt> <tt class="py-line"> <tt id="link-3950" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3950', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L4168"></a><tt class="py-lineno">4168</tt> <tt class="py-line"> <tt id="link-3951" class="py-name" targets="Class lxml.tests.test_elementtree.CElementTreeTestCase=lxml.tests.test_elementtree.CElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3951', 'CElementTreeTestCase', 'link-3951');">CElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L4169"></a><tt class="py-lineno">4169</tt> <tt class="py-line"> <tt id="link-3952" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3952', 'CElementTreeTestCase', 'link-3951');">CElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3953" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET" class="py-name" href="#" onclick="return doclink('link-3953', 'required_versions_cET', 'link-33');">required_versions_cET</a></tt><tt class="py-op">,</tt> <tt id="link-3954" class="py-name"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-3954', 'CET_VERSION', 'link-14');">CET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L4170"></a><tt class="py-lineno">4170</tt> <tt class="py-line"> </tt>
-<a name="L4171"></a><tt class="py-lineno">4171</tt> <tt class="py-line"> </tt>
-<a name="L4172"></a><tt class="py-lineno">4172</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L4173"></a><tt class="py-lineno">4173</tt> <tt class="py-line"> <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L4174"></a><tt class="py-lineno">4174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3955" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_elementtree._XMLPullParserTest.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3955', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4175"></a><tt class="py-lineno">4175</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3956" class="py-name" targets="Class lxml.tests.test_elementtree.ETreeTestCase=lxml.tests.test_elementtree.ETreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreeTestCase" class="py-name" href="#" onclick="return doclink('link-3956', 'ETreeTestCase', 'link-3956');">ETreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4176"></a><tt class="py-lineno">4176</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3957" class="py-name" targets="Class lxml.tests.test_elementtree.ETreePullTestCase=lxml.tests.test_elementtree.ETreePullTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3957', 'ETreePullTestCase', 'link-3957');">ETreePullTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4177"></a><tt class="py-lineno">4177</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3958" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3958', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4178"></a><tt class="py-lineno">4178</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3959" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3959', 'ElementTreeTestCase', 'link-3938');">ElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4179"></a><tt class="py-lineno">4179</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3960" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3960', 'ElementTreePullTestCase', 'link-3946');">ElementTreePullTestCase</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4180"></a><tt class="py-lineno">4180</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3961" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3961', 'ElementTreePullTestCase', 'link-3946');">ElementTreePullTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4181"></a><tt class="py-lineno">4181</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3962" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3962', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L4182"></a><tt class="py-lineno">4182</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3963" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3963', 'CElementTreeTestCase', 'link-3951');">CElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L4183"></a><tt class="py-lineno">4183</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L4184"></a><tt class="py-lineno">4184</tt> <tt class="py-line"> </tt>
-<a name="L4185"></a><tt class="py-lineno">4185</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L4186"></a><tt class="py-lineno">4186</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L4187"></a><tt class="py-lineno">4187</tt> <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3990', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3991" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3991', 'cElementTree', 'link-12');">cElementTree</a></tt> </tt>
+</div><a name="L4215"></a><tt class="py-lineno">4215</tt> <tt class="py-line"> </tt>
+<a name="L4216"></a><tt class="py-lineno">4216</tt> <tt class="py-line"> <tt id="link-3992" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3992', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L4217"></a><tt class="py-lineno">4217</tt> <tt class="py-line"> <tt id="link-3993" class="py-name" targets="Class lxml.tests.test_elementtree.CElementTreeTestCase=lxml.tests.test_elementtree.CElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3993', 'CElementTreeTestCase', 'link-3993');">CElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L4218"></a><tt class="py-lineno">4218</tt> <tt class="py-line"> <tt id="link-3994" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3994', 'CElementTreeTestCase', 'link-3993');">CElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3995" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET" class="py-name" href="#" onclick="return doclink('link-3995', 'required_versions_cET', 'link-33');">required_versions_cET</a></tt><tt class="py-op">,</tt> <tt id="link-3996" class="py-name"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-3996', 'CET_VERSION', 'link-14');">CET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L4219"></a><tt class="py-lineno">4219</tt> <tt class="py-line"> </tt>
+<a name="L4220"></a><tt class="py-lineno">4220</tt> <tt class="py-line"> </tt>
+<a name="L4221"></a><tt class="py-lineno">4221</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L4222"></a><tt class="py-lineno">4222</tt> <tt class="py-line"> <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L4223"></a><tt class="py-lineno">4223</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-3997" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_elementtree._XMLPullParserTest.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3997', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4224"></a><tt class="py-lineno">4224</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3998" class="py-name" targets="Class lxml.tests.test_elementtree.ETreeTestCase=lxml.tests.test_elementtree.ETreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreeTestCase" class="py-name" href="#" onclick="return doclink('link-3998', 'ETreeTestCase', 'link-3998');">ETreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4225"></a><tt class="py-lineno">4225</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3999" class="py-name" targets="Class lxml.tests.test_elementtree.ETreePullTestCase=lxml.tests.test_elementtree.ETreePullTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreePullTestCase" class="py-name" href="#" onclick="return doclink('link-3999', 'ETreePullTestCase', 'link-3999');">ETreePullTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4226"></a><tt class="py-lineno">4226</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-4000" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-4000', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4227"></a><tt class="py-lineno">4227</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4001" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-4001', 'ElementTreeTestCase', 'link-3980');">ElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4228"></a><tt class="py-lineno">4228</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-4002" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-4002', 'ElementTreePullTestCase', 'link-3988');">ElementTreePullTestCase</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4229"></a><tt class="py-lineno">4229</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4003" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreePullTestCase" class="py-name" href="#" onclick="return doclink('link-4003', 'ElementTreePullTestCase', 'link-3988');">ElementTreePullTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4230"></a><tt class="py-lineno">4230</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-4004" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-4004', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L4231"></a><tt class="py-lineno">4231</tt> <tt class="py-line"> <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-4005" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-4005', 'CElementTreeTestCase', 'link-3993');">CElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L4232"></a><tt class="py-lineno">4232</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L4233"></a><tt class="py-lineno">4233</tt> <tt class="py-line"> </tt>
+<a name="L4234"></a><tt class="py-lineno">4234</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L4235"></a><tt class="py-lineno">4235</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L4236"></a><tt class="py-lineno">4236</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren">test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail">test_iter_remove_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail">test_iteration_clear_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty">test_iteration_set_tail_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating">test_remove_while_iterating</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring" onclick="show_private();">_rootstring</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail" onclick="show_private();">_test_del_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean" onclick="show_private();">_test_element_boolean</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren" onclick="show_private();">_test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding" onclick="show_private();">_test_wrong_unicode_encoding</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement" onclick="show_private();">_writeElement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile" onclick="show_private();">_writeElementFile</a></code>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren">test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail">test_iter_remove_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail">test_iteration_clear_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty">test_iteration_set_tail_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating">test_remove_while_iterating</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring" onclick="show_private();">_rootstring</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail" onclick="show_private();">_test_del_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean" onclick="show_private();">_test_element_boolean</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren" onclick="show_private();">_test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding" onclick="show_private();">_test_wrong_unicode_encoding</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement" onclick="show_private();">_writeElement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile" onclick="show_private();">_writeElementFile</a></code>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getchildren">test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter_remove_tail">test_iter_remove_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_clear_tail">test_iteration_clear_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_set_tail_empty">test_iteration_set_tail_empty</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a></code>,
+ <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_while_iterating">test_remove_while_iterating</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring" onclick="show_private();">_rootstring</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail" onclick="show_private();">_test_del_tail</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean" onclick="show_private();">_test_element_boolean</a></code>,
- <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren" onclick="show_private();">_test_getchildren</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding" onclick="show_private();">_test_wrong_unicode_encoding</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement" onclick="show_private();">_writeElement</a></code>,
<code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile" onclick="show_private();">_writeElementFile</a></code>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="test_iteration_crash"></a><span class="summary-sig-name">test_iteration_crash</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a name="test_iteration_set_tail_empty"></a><span class="summary-sig-name">test_iteration_set_tail_empty</span>(<span class="summary-sig-arg">self</span>)</span></td>
<td align="right" valign="top">
- <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_iteration_crash">source code</a></span>
+ <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_iteration_set_tail_empty">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="test_iteration_clear_tail"></a><span class="summary-sig-name">test_iteration_clear_tail</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_iteration_clear_tail">source code</a></span>
</td>
</tr>
</td>
</tr>
-<tr class="private">
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="test_remove_while_iterating"></a><span class="summary-sig-name">test_remove_while_iterating</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_remove_while_iterating">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="_test_getchildren"></a><span class="summary-sig-name">_test_getchildren</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a name="test_getchildren"></a><span class="summary-sig-name">test_getchildren</span>(<span class="summary-sig-arg">self</span>)</span></td>
<td align="right" valign="top">
- <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase._test_getchildren">source code</a></span>
+ <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_getchildren">source code</a></span>
</td>
</tr>
</tr>
</table>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="test_iter_remove_tail"></a><span class="summary-sig-name">test_iter_remove_tail</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.test_iter_remove_tail">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
</td>
</tr>
<tr>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">element</span>,
- <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span></td>
+ <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndExtendWorker.handle">source code</a></span>
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">element</span>,
- <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span>
+ <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndExtendWorker.handle">source code</a></span>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndInjectWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">element</span>,
- <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span></td>
+ <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndInjectWorker.handle">source code</a></span>
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">element</span>,
- <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span>
+ <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseAndInjectWorker.handle">source code</a></span>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle" class="summary-sig-name">handle</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">xml</span>,
- <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span></td>
+ <span class="summary-sig-arg">_fromstring</span>=<span class="summary-sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseWorker.handle">source code</a></span>
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">handle</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">xml</span>,
- <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f9bb419c290></span>)</span>
+ <span class="sig-arg">_fromstring</span>=<span class="sig-default"><cyfunction fromstring at 0x7f6ccf051290></span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.ParseWorker.handle">source code</a></span>
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1
- on Fri Feb 8 19:32:40 2019
+ on Thu Feb 28 20:36:14 2019
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="how-to-build-lxml-from-source">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to build lxml from source</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to build lxml from source</h1>
<p>To build lxml from source, you need libxml2 and libxslt properly
installed, <em>including the header files</em>. These are likely shipped in
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="the-public-c-api-of-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The public C-API of lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The public C-API of lxml.etree</h1>
<p>As of version 1.1, lxml.etree provides a public C-API. This allows external
C extensions to efficiently access public functions and classes of lxml,
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
-<title>lxml changelog</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="lxml-changelog">
-<h1 class="title">lxml changelog</h1>
-
-<div class="section" id="id1">
-<h1>4.3.1 (2019-02-08)</h1>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1814522">LP#1814522</a>: Crash when appending a child subtree that contains unsubstituted
-entity references.</li>
-</ul>
-</div>
-<div class="section" id="id2">
-<h1>4.3.0 (2019-01-04)</h1>
-<div class="section" id="features-added">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.sax</tt> is compiled using Cython in order to speed it up.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/267">GH#267</a>: <tt class="docutils literal">lxml.sax.ElementTreeProducer</tt> now preserves the namespace prefixes.
-If two prefixes point to the same URI, the first prefix in alphabetical order
-is used. Patch by Lennart Regebro.</li>
-<li>Updated ISO-Schematron implementation to 2013 version (now MIT licensed)
-and the corresponding schema to the 2016 version (with optional "properties").</li>
-</ul>
-</div>
-<div class="section" id="other-changes">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/270">GH#270</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/271">GH#271</a>: Support for Python 2.6 and 3.3 was removed.
-Patch by hugovk.</li>
-<li>The minimum dependency versions were raised to libxml2 2.9.2 and libxslt 1.1.27,
-which were released in 2014 and 2012 respectively.</li>
-<li>Built with Cython 0.29.2.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id3">
-<h1>4.2.6 (2019-01-02)</h1>
-<div class="section" id="bugs-fixed">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1799755">LP#1799755</a>: Fix a DeprecationWarning in Py3.7+.</li>
-<li>Import warnings in Python 3.6+ were resolved.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id4">
-<h1>4.2.5 (2018-09-09)</h1>
-<div class="section" id="id5">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Javascript URLs that used URL escaping were not removed by the HTML cleaner.
-Security problem found by Omar Eissa. (CVE-2018-19787)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id6">
-<h1>4.2.4 (2018-08-03)</h1>
-<div class="section" id="id7">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/259">GH#259</a>: Allow using <tt class="docutils literal"><span class="pre">pkg-config</span></tt> for build configuration.
-Patch by Patrick Griffis.</li>
-</ul>
-</div>
-<div class="section" id="id8">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1773749">LP#1773749</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/268">GH#268</a>: Crash when moving an element to another document with
-<tt class="docutils literal">Element.insert()</tt>.
-Patch by Alexander Weggerle.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id9">
-<h1>4.2.3 (2018-06-27)</h1>
-<div class="section" id="id10">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Reverted <a class="reference external" href="https://github.com/lxml/lxml/issues/265">GH#265</a>: lxml links against zlib as a shared library again.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id11">
-<h1>4.2.2 (2018-06-22)</h1>
-<div class="section" id="id12">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/266">GH#266</a>: Fix sporadic crash during GC when parse-time schema validation is used
-and the parser participates in a reference cycle.
-Original patch by Julien Greard.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/265">GH#265</a>: lxml no longer links against zlib as a shared library, only on static builds.
-Patch by Nehal J Wani.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id14">
-<h1>4.2.1 (2018-03-21)</h1>
-<div class="section" id="id15">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1755825">LP#1755825</a>: <tt class="docutils literal">iterwalk()</tt> failed to return the 'start' event for the initial
-element if a tag selector is used.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1756314">LP#1756314</a>: Failure to import 4.2.0 into PyPy due to a missing library symbol.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1727864">LP#1727864</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/258">GH#258</a>: Add "-isysroot" linker option on MacOS as needed by XCode 9.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id16">
-<h1>4.2.0 (2018-03-13)</h1>
-<div class="section" id="id17">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/255">GH#255</a>: <tt class="docutils literal">SelectElement.value</tt> returns more standard-compliant and
-browser-like defaults for non-multi-selects. If no option is selected, the
-value of the first option is returned (instead of None). If multiple options
-are selected, the value of the last one is returned (instead of that of the
-first one). If no options are present (not standard-compliant)
-<tt class="docutils literal">SelectElement.value</tt> still returns <tt class="docutils literal">None</tt>.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/261">GH#261</a>: The <tt class="docutils literal">HTMLParser()</tt> now supports the <tt class="docutils literal">huge_tree</tt> option.
-Patch by stranac.</li>
-</ul>
-</div>
-<div class="section" id="id18">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Some XSLT messages were not captured by the transform error log.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1737825">LP#1737825</a>: Crash at shutdown after an interrupted iterparse run with XMLSchema
-validation.</li>
-</ul>
-</div>
-<div class="section" id="id19">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id20">
-<h1>4.1.1 (2017-11-04)</h1>
-<ul class="simple">
-<li>Rebuild with Cython 0.27.3 to improve support for Py3.7.</li>
-</ul>
-</div>
-<div class="section" id="id21">
-<h1>4.1.0 (2017-10-13)</h1>
-<div class="section" id="id22">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementPath supports text predicates for current node, like "[.='text']".</li>
-<li>ElementPath allows spaces in predicates.</li>
-<li>Custom Element classes and XPath functions can now be registered with a
-decorator rather than explicit dict assignments.</li>
-<li>Static Linux wheels are now built with link time optimisation (LTO) enabled.
-This should have a beneficial impact on the overall performance by providing
-a tighter compiler integration between lxml and libxml2/libxslt.</li>
-</ul>
-</div>
-<div class="section" id="id23">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1722776">LP#1722776</a>: Requesting non-Element objects like comments from a document with
-<tt class="docutils literal">PythonElementClassLookup</tt> could fail with a TypeError.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id24">
-<h1>4.0.0 (2017-09-17)</h1>
-<div class="section" id="id25">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The ElementPath implementation is now compiled using Cython,
-which speeds up the <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods quite significantly.</li>
-<li>The modules <tt class="docutils literal">lxml.builder</tt>, <tt class="docutils literal">lxml.html.diff</tt> and <tt class="docutils literal">lxml.html.clean</tt>
-are also compiled using Cython in order to speed them up.</li>
-<li><tt class="docutils literal">xmlfile()</tt> supports async coroutines using <tt class="docutils literal">async with</tt> and <tt class="docutils literal">await</tt>.</li>
-<li><tt class="docutils literal">iterwalk()</tt> has a new method <tt class="docutils literal">skip_subtree()</tt> that prevents walking into
-the descendants of the current element.</li>
-<li><tt class="docutils literal">RelaxNG.from_rnc_string()</tt> accepts a <tt class="docutils literal">base_url</tt> argument to
-allow relative resource lookups.</li>
-<li>The XSLT result object has a new method <tt class="docutils literal">.write_output(file)</tt> that serialises
-output data into a file according to the <tt class="docutils literal"><xsl:output></tt> configuration.</li>
-</ul>
-</div>
-<div class="section" id="id26">
-<h2>Bugs fixed</h2>
-<ul>
-<li><p class="first"><a class="reference external" href="https://github.com/lxml/lxml/issues/251">GH#251</a>: HTML comments were handled incorrectly by the soupparser.
-Patch by mozbugbox.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1654544">LP#1654544</a>: The html5parser no longer passes the <tt class="docutils literal">useChardet</tt> option
-if the input is a Unicode string, unless explicitly requested. When parsing
-files, the default is to enable it when a URL or file path is passed (because
-the file is then opened in binary mode), and to disable it when reading from
-a file(-like) object.</p>
-<p>Note: This is a backwards incompatible change of the default configuration.
-If your code parses byte strings/streams and depends on character detection,
-please pass the option <tt class="docutils literal">guess_charset=True</tt> explicitly, which already worked
-in older lxml versions.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1703810">LP#1703810</a>: <tt class="docutils literal">etree.fromstring()</tt> failed to parse UTF-32 data with BOM.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1526522">LP#1526522</a>: Some RelaxNG errors were not reported in the error log.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1567526">LP#1567526</a>: Empty and plain text input raised a TypeError in soupparser.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1710429">LP#1710429</a>: Uninitialised variable usage in HTML diff.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1415643">LP#1415643</a>: The closing tags context manager in <tt class="docutils literal">xmlfile()</tt> could continue
-to output end tags even after writing failed with an exception.</p>
-</li>
-<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1465357">LP#1465357</a>: <tt class="docutils literal">xmlfile.write()</tt> now accepts and ignores None as input argument.</p>
-</li>
-<li><p class="first">Compilation under Py3.7-pre failed due to a modified function signature.</p>
-</li>
-</ul>
-</div>
-<div class="section" id="id27">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The main module source files were renamed from <tt class="docutils literal"><span class="pre">lxml.*.pyx</span></tt> to plain
-<tt class="docutils literal">*.pyx</tt> (e.g. <tt class="docutils literal">etree.pyx</tt>) to simplify their handling in the build
-process. Care was taken to keep the old header files as fallbacks for
-code that compiles against the public C-API of lxml, but it might still
-be worth validating that third-party code does not notice this change.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id28">
-<h1>3.8.0 (2017-06-03)</h1>
-<div class="section" id="id29">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.write()</tt> has a new option <tt class="docutils literal">doctype</tt> that writes out a
-doctype string before the serialisation, in the same way as <tt class="docutils literal">tostring()</tt>.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/220">GH#220</a>: <tt class="docutils literal">xmlfile</tt> allows switching output methods at an element level.
-Patch by Burak Arslan.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1595781">LP#1595781</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/240">GH#240</a>: added a PyCapsule Python API and C-level API for
-passing externally generated libxml2 documents into lxml.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/244">GH#244</a>: error log entries have a new property <tt class="docutils literal">path</tt> with an XPath
-expression (if known, None otherwise) that points to the tree element
-responsible for the error. Patch by Bob Kline.</li>
-<li>The namespace prefix mapping that can be used in ElementPath now injects
-a default namespace when passing a None prefix.</li>
-</ul>
-</div>
-<div class="section" id="id30">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/238">GH#238</a>: Character escapes were not hex-encoded in the <tt class="docutils literal">xmlfile</tt> serialiser.
-Patch by matejcik.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/229">GH#229</a>: fix for externally created XML documents. Patch by Theodore Dubois.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1665241">LP#1665241</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/228">GH#228</a>: Form data handling in lxml.html no longer strips the
-option values specified in form attributes but only the text values.
-Patch by Ashish Kulkarni.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: revert previous fix for XSLT error logging as it breaks
-multi-threaded XSLT processing.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1673355">LP#1673355</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/233">GH#233</a>: <tt class="docutils literal">fromstring()</tt> html5parser failed to parse byte strings.</li>
-</ul>
-</div>
-<div class="section" id="id32">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The previously undocumented <tt class="docutils literal">docstring</tt> option in <tt class="docutils literal">ElementTree.write()</tt>
-produces a deprecation warning and will eventually be removed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id33">
-<h1>3.7.4 (2017-??-??)</h1>
-<div class="section" id="id34">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: revert previous fix for XSLT error logging as it breaks
-multi-threaded XSLT processing.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1673355">LP#1673355</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/233">GH#233</a>: <tt class="docutils literal">fromstring()</tt> html5parser failed to parse byte strings.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id38">
-<h1>3.7.3 (2017-02-18)</h1>
-<div class="section" id="id39">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/218">GH#218</a> was ineffective in Python 3.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/222">GH#222</a>: <tt class="docutils literal">lxml.html.submit_form()</tt> failed in Python 3.
-Patch by Jakub Wilk.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id40">
-<h1>3.7.2 (2017-01-08)</h1>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/220">GH#220</a>: <tt class="docutils literal">xmlfile</tt> allows switching output methods at an element level.
-Patch by Burak Arslan.</li>
-</ul>
-<div class="section" id="id42">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Work around installation problems in recent Python 2.7 versions
-due to FTP download failures.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/219">GH#219</a>: <tt class="docutils literal">xmlfile.element()</tt> was not properly quoting attribute values.
-Patch by Burak Arslan.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/218">GH#218</a>: <tt class="docutils literal">xmlfile.element()</tt> was not properly escaping text content of
-script/style tags. Patch by Burak Arslan.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id44">
-<h1>3.7.1 (2016-12-23)</h1>
-<ul class="simple">
-<li>No source changes, issued only to solve problems with the
-binary packages released for 3.7.0.</li>
-</ul>
-</div>
-<div class="section" id="id45">
-<h1>3.7.0 (2016-12-10)</h1>
-<div class="section" id="id46">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/217">GH#217</a>: <tt class="docutils literal">XMLSyntaxError</tt> now behaves more like its <tt class="docutils literal">SyntaxError</tt>
-baseclass. Patch by Philipp A.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/216">GH#216</a>: <tt class="docutils literal">HTMLParser()</tt> now supports the same <tt class="docutils literal">collect_ids</tt> parameter
-as <tt class="docutils literal">XMLParser()</tt>. Patch by Burak Arslan.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/210">GH#210</a>: Allow specifying a serialisation method in <tt class="docutils literal">xmlfile.write()</tt>.
-Patch by Burak Arslan.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/203">GH#203</a>: New option <tt class="docutils literal">default_doctype</tt> in <tt class="docutils literal">HTMLParser</tt> that allows
-disabling the automatic doctype creation. Patch by Shadab Zafar.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/201">GH#201</a>: Calling the method <tt class="docutils literal"><span class="pre">.set('attrname')</span></tt> without value argument
-(or <tt class="docutils literal">None</tt>) on HTML elements creates an attribute without value that
-serialises like <tt class="docutils literal"><div <span class="pre">attrname></div></span></tt>. Patch by Daniel Holth.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/197">GH#197</a>: Ignore form input fields in <tt class="docutils literal">form_values()</tt> when they are
-marked as <tt class="docutils literal">disabled</tt> in HTML. Patch by Kristian Klemon.</li>
-</ul>
-</div>
-<div class="section" id="id47">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/206">GH#206</a>: File name and line number were missing from XSLT error messages.
-Patch by Marcus Brinkmann.</li>
-</ul>
-</div>
-<div class="section" id="id48">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Log entries no longer allow anything but plain string objects as message text
-and file name.</li>
-<li><tt class="docutils literal">zlib</tt> is included in the list of statically built libraries.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id49">
-<h1>3.6.4 (2016-08-20)</h1>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/204">GH#204</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614693">LP#1614693</a>: build fix for MacOS-X.</li>
-</ul>
-</div>
-<div class="section" id="id50">
-<h1>3.6.3 (2016-08-18)</h1>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: change linker flags to build multi-linux wheels</li>
-</ul>
-</div>
-<div class="section" id="id51">
-<h1>3.6.2 (2016-08-18)</h1>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: release without source changes to provide cleanly built Linux wheels</li>
-</ul>
-</div>
-<div class="section" id="id53">
-<h1>3.6.1 (2016-07-24)</h1>
-<div class="section" id="id54">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/180">GH#180</a>: Separate option <tt class="docutils literal">inline_style</tt> for Cleaner that only removes <tt class="docutils literal">style</tt>
-attributes instead of all styles. Patch by Christian Pedersen.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/196">GH#196</a>: Windows build support for Python 3.5. Contribution by Maximilian Hils.</li>
-</ul>
-</div>
-<div class="section" id="id55">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/199">GH#199</a>: Exclude <tt class="docutils literal">file</tt> fields from <tt class="docutils literal">FormElement.form_values</tt> (as browsers do).
-Patch by Tomas Divis.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/198">GH#198</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1568167">LP#1568167</a>: Try to provide base URL from <tt class="docutils literal">Resolver.resolve_string()</tt>.
-Patch by Michael van Tellingen.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/191">GH#191</a>: More accurate float serialisation in <tt class="docutils literal">objectify.FloatElement</tt>.
-Patch by Holger Joukl.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Repair XSLT error logging. Patch by Marcus Brinkmann.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id57">
-<h1>3.6.0 (2016-03-17)</h1>
-<div class="section" id="id58">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/187">GH#187</a>: Now supports (only) version 5.x and later of PyPy.
-Patch by Armin Rigo.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/181">GH#181</a>: Direct support for <tt class="docutils literal">.rnc</tt> files in <cite>RelaxNG()</cite> if <tt class="docutils literal">rnc2rng</tt>
-is installed. Patch by Dirkjan Ochtman.</li>
-</ul>
-</div>
-<div class="section" id="id59">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/189">GH#189</a>: Static builds honour FTP proxy configurations when downloading
-the external libs. Patch by Youhei Sakurai.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/186">GH#186</a>: Soupparser failed to process entities in Python 3.x.
-Patch by Duncan Morris.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/185">GH#185</a>: Rare encoding related <tt class="docutils literal">TypeError</tt> on import was fixed.
-Patch by Petr Demin.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id60">
-<h1>3.5.0 (2015-11-13)</h1>
-<div class="section" id="id61">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Unicode string results failed XPath queries in PyPy.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1497051">LP#1497051</a>: HTML target parser failed to terminate on exceptions
-and continued parsing instead.</li>
-<li>Deprecated API usage in doctestcompare.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="b1-2015-09-18">
-<h1>3.5.0b1 (2015-09-18)</h1>
-<div class="section" id="id62">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">keep_ns_prefixes</tt>
-that does not remove definitions of the provided prefix-namespace
-mapping from the tree.</li>
-<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">top_nsmap</tt> that
-moves definitions of the provided prefix-namespace mapping to the
-top of the tree.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1490451">LP#1490451</a>: <tt class="docutils literal">Element</tt> objects gained a <tt class="docutils literal">cssselect()</tt> method as
-known from <tt class="docutils literal">lxml.html</tt>. Patch by Simon Sapin.</li>
-<li>API functions and methods behave and look more like Python functions,
-which allows introspection on them etc. One side effect to be aware of
-is that the functions now bind as methods when assigned to a class
-variable. A quick fix is to wrap them in <tt class="docutils literal">staticmethod()</tt> (as for
-normal Python functions).</li>
-<li>ISO-Schematron support gained an option <tt class="docutils literal">error_finder</tt> that allows
-passing a filter function for picking validation errors from reports.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1243600">LP#1243600</a>: Elements in <tt class="docutils literal">lxml.html</tt> gained a <tt class="docutils literal">classes</tt> property
-that provides a set-like interface to the <tt class="docutils literal">class</tt> attribute.
-Original patch by masklinn.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1341964">LP#1341964</a>: The soupparser now handles DOCTYPE declarations, comments
-and processing instructions outside of the root element.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421512">LP#1421512</a>: The <tt class="docutils literal">docinfo</tt> of a tree was made editable to allow
-setting and removing the public ID and system ID of the DOCTYPE.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1442427">LP#1442427</a>: More work-arounds for quirks and bugs in pypy and pypy3.</li>
-<li><tt class="docutils literal">lxml.html.soupparser</tt> now uses BeautifulSoup version 4 instead
-of version 3 if available.</li>
-</ul>
-</div>
-<div class="section" id="id63">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory errors that occur during tree adaptations (e.g. moving subtrees
-to foreign documents) could leave the tree in a crash prone state.</li>
-<li>Calling <tt class="docutils literal">process_children()</tt> in an XSLT extension element without
-an <tt class="docutils literal">output_parent</tt> argument failed with a <tt class="docutils literal">TypeError</tt>.
-Fix by Jens Tröger.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/162">GH#162</a>: Image data in HTML <tt class="docutils literal">data</tt> URLs is considered safe and
-no longer removed by <tt class="docutils literal">lxml.html.clean</tt> JavaScript cleaner.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/166">GH#166</a>: Static build could link libraries in wrong order.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/172">GH#172</a>: Rely a bit more on libxml2 for encoding detection rather than
-rolling our own in some cases. Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/159">GH#159</a>: Validity checks for names and string content were tightened
-to detect the use of illegal characters early. Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421921">LP#1421921</a>: Comments/PIs before the DOCTYPE declaration were not
-serialised. Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/659367">LP#659367</a>: Some HTML DOCTYPE declarations were not serialised.
-Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238503">LP#1238503</a>: lxml.doctestcompare is now consistent with stdlib's doctest
-in how it uses <tt class="docutils literal">+</tt> and <tt class="docutils literal">-</tt> to refer to unexpected and missing output.</li>
-<li>Empty prefixes are explicitly rejected when a namespace mapping is used
-with ElementPath to avoid hiding bugs in user code.</li>
-<li>Several problems with PyPy were fixed by switching to Cython 0.23.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id64">
-<h1>3.4.4 (2015-04-25)</h1>
-<div class="section" id="id65">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
-Python 3.4+ was removed again.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id66">
-<h1>3.4.3 (2015-04-15)</h1>
-<div class="section" id="id67">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Expression cache in ElementPath was ignored. Fix by Changaco.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1426868">LP#1426868</a>: Passing a default namespace and a prefixed namespace mapping
-as nsmap into <tt class="docutils literal">xmlfile.element()</tt> raised a <tt class="docutils literal">TypeError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421927">LP#1421927</a>: DOCTYPE system URLs were incorrectly quoted when containing
-double quotes. Patch by Olli Pottonen.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1419354">LP#1419354</a>: meta-redirect URLs were incorrectly processed by
-<tt class="docutils literal">iterlinks()</tt> if preceded by whitespace.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id68">
-<h1>3.4.2 (2015-02-07)</h1>
-<div class="section" id="id69">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1415907">LP#1415907</a>: Crash when creating an XMLSchema from a non-root element
-of an XML document.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1369362">LP#1369362</a>: HTML cleaning failed when hitting processing instructions
-with pseudo-attributes.</li>
-<li><tt class="docutils literal">CDATA()</tt> wrapped content was rejected for tail text.</li>
-<li>CDATA sections were not serialised as tail text of the top-level element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id70">
-<h1>3.4.1 (2014-11-20)</h1>
-<div class="section" id="id71">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New <tt class="docutils literal">htmlfile</tt> HTML generator to accompany the incremental <tt class="docutils literal">xmlfile</tt>
-serialisation API. Patch by Burak Arslan.</li>
-</ul>
-</div>
-<div class="section" id="id72">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.sax.ElementTreeContentHandler</tt> did not initialise its superclass.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id73">
-<h1>3.4.0 (2014-09-10)</h1>
-<div class="section" id="id74">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
-content after each API operation (starting/ending element blocks or writes).
-A new method <tt class="docutils literal">xf.flush()</tt> can alternatively be used to explicitly flush
-the output.</li>
-<li><tt class="docutils literal">lxml.html.document_fromstring</tt> has a new option <tt class="docutils literal">ensure_head_body=True</tt>
-which will add an empty head and/or body element to the result document if
-missing.</li>
-<li><tt class="docutils literal">lxml.html.iterlinks</tt> now returns links inside meta refresh tags.</li>
-<li>New <tt class="docutils literal">XMLParser</tt> option <tt class="docutils literal">collect_ids=False</tt> to disable ID hash table
-creation. This can substantially speed up parsing of documents with many
-different IDs that are not used.</li>
-<li>The parser uses per-document hash tables for XML IDs. This reduces the
-load of the global parser dict and speeds up parsing for documents with
-many different IDs.</li>
-<li><tt class="docutils literal">ElementTree.getelementpath(element)</tt> returns a structural ElementPath
-expression for the given element, which can be used for lookups later.</li>
-<li><tt class="docutils literal">xmlfile()</tt> accepts a new argument <tt class="docutils literal">close=True</tt> to close file(-like)
-objects after writing to them. Before, <tt class="docutils literal">xmlfile()</tt> only closed the file
-if it had opened it internally.</li>
-<li>Allow "bytearray" type for ASCII text input.</li>
-</ul>
-</div>
-<div class="section" id="id75">
-<h2>Bugs fixed</h2>
-</div>
-<div class="section" id="id76">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/400588">LP#400588</a>: decoding errors have become hard errors even in recovery mode.
-Previously, they could lead to an internal tree representation in a mixed
-encoding state, which lead to very late errors or even silently incorrect
-behaviour during tree traversal or serialisation.</li>
-<li>Requires Python 2.6, 2.7, 3.2 or later. No longer supports
-Python 2.4, 2.5 and 3.1, use lxml 3.3.x for those.</li>
-<li>Requires libxml2 2.7.0 or later and libxslt 1.1.23 or later,
-use lxml 3.3.x with older versions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id77">
-<h1>3.3.6 (2014-08-28)</h1>
-<div class="section" id="id78">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Prevent tree cycle creation when adding Elements as siblings.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
-extension functions.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id79">
-<h1>3.3.5 (2014-04-18)</h1>
-<div class="section" id="id80">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning could fail to strip javascript links that mix control
-characters into the link scheme.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id81">
-<h1>3.3.4 (2014-04-03)</h1>
-<div class="section" id="id82">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Source line numbers above 65535 are available on Elements when
-using libxml2 2.9 or later.</li>
-</ul>
-</div>
-<div class="section" id="id83">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.fragment_fromstring()</tt> failed for bytes input in Py3.</li>
-</ul>
-</div>
-<div class="section" id="id84">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id85">
-<h1>3.3.3 (2014-03-04)</h1>
-<div class="section" id="id86">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1287118">LP#1287118</a>: Crash when using Element subtypes with <tt class="docutils literal">__slots__</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id87">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The internal classes <tt class="docutils literal">_LogEntry</tt> and <tt class="docutils literal">_Attrib</tt> can no longer be
-subclassed from Python code.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id88">
-<h1>3.3.2 (2014-02-26)</h1>
-<div class="section" id="id89">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The properties <tt class="docutils literal">resolvers</tt> and <tt class="docutils literal">version</tt>, as well as the methods
-<tt class="docutils literal">set_element_class_lookup()</tt> and <tt class="docutils literal">makeelement()</tt>, were lost from
-<tt class="docutils literal">iterparse</tt> objects in 3.3.0.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1222132">LP#1222132</a>: instances of <tt class="docutils literal">XMLSchema</tt>, <tt class="docutils literal">Schematron</tt> and <tt class="docutils literal">RelaxNG</tt>
-did not clear their local <tt class="docutils literal">error_log</tt> before running a validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238500">LP#1238500</a>: lxml.doctestcompare mixed up "expected" and "actual" in
-attribute values.</li>
-<li>Some file I/O tests were failing in MS-Windows due to non-portable temp
-file usage. Initial patch by Gabi Davar.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/910014">LP#910014</a>: duplicate IDs in a document were not reported by DTD validation.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185332">LP#1185332</a>: <tt class="docutils literal"><span class="pre">tostring(method="html")</span></tt> did not use HTML serialisation
-semantics for trailing tail text. Initial patch by Sylvain Viollon.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1281139">LP#1281139</a>: <tt class="docutils literal">.attrib</tt> value of Comments lost its mutation methods
-in 3.3.0. Even though it is empty and immutable, it should still
-provide the same interface as that returned for Elements.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id90">
-<h1>3.3.1 (2014-02-12)</h1>
-<div class="section" id="id91">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id92">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1014290">LP#1014290</a>: HTML documents parsed with <tt class="docutils literal">parser.feed()</tt> failed to find
-elements during tag iteration.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1273709">LP#1273709</a>: Building in PyPy failed due to missing support for
-<tt class="docutils literal">PyUnicode_Compare()</tt> and <tt class="docutils literal"><span class="pre">PyByteArray_*()</span></tt> in PyPy's C-API.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274413">LP#1274413</a>: Compilation in MSVC failed due to missing "stdint.h" standard
-header file.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274118">LP#1274118</a>: iterparse() failed to parse BOM prefixed files.</li>
-</ul>
-</div>
-<div class="section" id="id93">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id94">
-<h1>3.3.0 (2014-01-26)</h1>
-<div class="section" id="id95">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id96">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The heuristic that distinguishes file paths from URLs was tightened
-to produce less false negatives.</li>
-</ul>
-</div>
-<div class="section" id="id97">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta5-2014-01-18">
-<h1>3.3.0beta5 (2014-01-18)</h1>
-<div class="section" id="id98">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The PEP 393 unicode parsing support gained a fallback for wchar strings
-which might still be somewhat common on Windows systems.</li>
-</ul>
-</div>
-<div class="section" id="id99">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Several error handling problems were fixed throughout the code base that
-could previously lead to exceptions being silently swallowed or not
-properly reported.</li>
-<li>The C-API function <tt class="docutils literal">appendChild()</tt> is now deprecated as it does not
-propagate exceptions (its return type is <tt class="docutils literal">void</tt>). The new function
-<tt class="docutils literal">appendChildToElement()</tt> was added as a safe replacement.</li>
-<li>Passing a string into <tt class="docutils literal">fromstringlist()</tt> raises an exception instead of
-parsing the string character by character.</li>
-</ul>
-</div>
-<div class="section" id="id100">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Document cleanup code was simplified using the new GC features in
-Cython 0.20.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2014-01-12">
-<h1>3.3.0beta4 (2014-01-12)</h1>
-<div class="section" id="id101">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id102">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The (empty) value returned by the <tt class="docutils literal">attrib</tt> property of Entity and Comment
-objects was mutable.</li>
-<li>Element class lookup wasn't available for the new pull parsers or when using
-a custom parser target.</li>
-<li>Setting Element attributes on instantiation with both the <tt class="docutils literal">attrib</tt> argument
-and keyword arguments could modify the mapping passed as <tt class="docutils literal">attrib</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1266171">LP#1266171</a>: DTDs instantiated from internal/external subsets (i.e. through
-the docinfo property) lost their attribute declarations.</li>
-</ul>
-</div>
-<div class="section" id="id103">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
-Python 3.4.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2014-01-02">
-<h1>3.3.0beta3 (2014-01-02)</h1>
-<div class="section" id="id104">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Unicode string parsing was optimised for Python 3.3 (PEP 393).</li>
-</ul>
-</div>
-<div class="section" id="id105">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML parsing of Unicode strings could misdecode the input on some platforms.</li>
-<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
-</ul>
-</div>
-<div class="section" id="id106">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta2-2013-12-20">
-<h1>3.3.0beta2 (2013-12-20)</h1>
-<div class="section" id="id107">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">iterparse()</tt> supports the <tt class="docutils literal">recover</tt> option.</li>
-</ul>
-</div>
-<div class="section" id="id108">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in <tt class="docutils literal">iterparse()</tt> for HTML parsing.</li>
-<li>Crash in target parsing with attributes.</li>
-</ul>
-</div>
-<div class="section" id="id109">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The safety check in the read-only tree implementation (e.g. used by
-<tt class="docutils literal">PythonElementClassLookup</tt>) raises a more appropriate <tt class="docutils literal">ReferenceError</tt>
-for illegal access after tree disposal instead of an <tt class="docutils literal">AssertionError</tt>.
-This should only impact test code that specifically checks the original
-behaviour.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2013-12-12">
-<h1>3.3.0beta1 (2013-12-12)</h1>
-<div class="section" id="id110">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New option <tt class="docutils literal">handle_failures</tt> in <tt class="docutils literal">make_links_absolute()</tt> and
-<tt class="docutils literal">resolve_base_href()</tt> (lxml.html) that enables ignoring or
-discarding links that fail to parse as URLs.</li>
-<li>New parser classes <tt class="docutils literal">XMLPullParser</tt> and <tt class="docutils literal">HTMLPullParser</tt> for
-incremental parsing, as implemented for ElementTree in Python 3.4.</li>
-<li><tt class="docutils literal">iterparse()</tt> enables recovery mode by default for HTML parsing
-(<tt class="docutils literal">html=True</tt>).</li>
-</ul>
-</div>
-<div class="section" id="id111">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1255132">LP#1255132</a>: crash when trying to run validation over non-Element (e.g.
-comment or PI).</li>
-<li>Error messages in the log and in exception messages that originated
-from libxml2 could accidentally be picked up from preceding warnings
-instead of the actual error.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify did not accept a dict as
-argument for adding attributes to the element it's building. This
-works as in lxml.builder now.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants, instead of running into an infinite
-loop.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-<li>lxml.html.formfill: Fix textarea form filling.
-The textarea used to be cleared before the new content was set,
-which removed the name attribute.</li>
-</ul>
-</div>
-<div class="section" id="id112">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some basic API classes use freelists internally for faster
-instantiation. This can speed up some <tt class="docutils literal">iterparse()</tt> scenarios,
-for example.</li>
-<li><tt class="docutils literal">iterparse()</tt> was rewritten to use the new <tt class="docutils literal">*PullParser</tt>
-classes internally instead of being a parser itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id113">
-<h1>3.2.5 (2014-01-02)</h1>
-<div class="section" id="id114">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id115">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
-<li>Crash in target parsing with attributes.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1255132">LP#1255132</a>: crash when trying to run validation over non-Element (e.g.
-comment or PI).</li>
-</ul>
-</div>
-<div class="section" id="id117">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id118">
-<h1>3.2.4 (2013-11-07)</h1>
-<div class="section" id="id119">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id120">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak when creating an XPath evaluator in a thread.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
-<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
-to one of its own descendants.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
-<li>Compressed plain-text serialisation to file-like objects was broken.</li>
-</ul>
-</div>
-<div class="section" id="id123">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id124">
-<h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="id125">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix support for Python 2.4 which was lost in 3.2.2.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id126">
-<h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="id127">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id128">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185701">LP#1185701</a>: spurious XMLSyntaxError after finishing iterparse().</li>
-<li>Crash in lxml.objectify during xsi annotation.</li>
-</ul>
-</div>
-<div class="section" id="id129">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Return values of user provided element class lookup methods are now
-validated against the type of the XML node they represent to prevent
-API class mismatches.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id130">
-<h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id131">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
-extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
-and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
-strings from the result list.</li>
-</ul>
-</div>
-<div class="section" id="id132">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When moving Elements to another tree, the namespace cleanup mechanism
-no longer drops namespace prefixes from attributes for which it finds
-a default namespace declaration, to prevent them from appearing as
-unnamespaced attributes after serialisation.</li>
-<li>Returning non-type objects from a custom class lookup method could lead
-to a crash.</li>
-<li>Instantiating and using subtypes of Comments and ProcessingInstructions
-crashed.</li>
-</ul>
-</div>
-<div class="section" id="id133">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id134">
-<h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id135">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id136">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/690319">LP#690319</a>: Leading whitespace could change the behaviour of the string
-parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
-in the face of uncommon HTML content like framesets or missing body tags.
-Patch by Stefan Seelmann.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
-non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
-reporting the <tt class="docutils literal">IOError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
-default parser and made subsequent attempts to parse from a URL fail.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-of overwriting the current value.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
-allowed by the user provided whitelist. Patch by Christine Koppelt.</li>
-</ul>
-</div>
-<div class="section" id="id137">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id138">
-<h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id139">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id140">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1136509">LP#1136509</a>: Passing attributes through the namespace-unaware API of
-the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
-with a <tt class="docutils literal">TypeError</tt>. Patch by Mike Bayer.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
-the result tree to a Unicode string.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
-by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id141">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id142">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id143">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id144">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1160386">LP#1160386</a>: Write access to <tt class="docutils literal">lxml.html.FormElement.fields</tt> raised
-an AttributeError in Py3.</li>
-<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
-</ul>
-</div>
-<div class="section" id="id145">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
-from the module dict.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id146">
-<h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id147">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/89">GH#89</a>: lxml.html.clean allows overriding the set of attributes that it
-considers 'safe'. Patch by Francis Devereux.</li>
-</ul>
-</div>
-<div class="section" id="id148">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1104370">LP#1104370</a>: <tt class="docutils literal">copy.copy(el.attrib)</tt> raised an exception. It now returns
-a copy of the attributes as a plain Python dict.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
-always used the first namespace mapping that was provided for each
-path expression instead of using the one that was actually passed
-in for the current run.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
-without threading support. Patch by Ulrich Seidl.</li>
-</ul>
-</div>
-<div class="section" id="id149">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta1-2012-12-21">
-<h1>3.1beta1 (2012-12-21)</h1>
-<div class="section" id="id150">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New build-time option <tt class="docutils literal"><span class="pre">--with-unicode-strings</span></tt> for Python 2 that
-makes the API always return Unicode strings for names and text
-instead of byte strings for plain ASCII content.</li>
-<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
-<li>E factory in lxml.objectify is callable to simplify the creation of
-tags with non-identifier names without having to resort to getattr().</li>
-</ul>
-</div>
-<div class="section" id="id151">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When starting from a non-namespaced element in lxml.objectify, searching
-for a child without explicitly specifying a namespace incorrectly found
-namespaced elements with the requested local name, instead of restricting
-the search to non-namespaced children.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1080792">LP#1080792</a>: Static build of libxml2 2.9.0 failed due to missing file.</li>
-</ul>
-</div>
-<div class="section" id="id152">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
-removed from the module API of lxml.objectify.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
-many children. Patch by Anders Hammarquist.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id153">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id154">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id155">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
-</ul>
-</div>
-<div class="section" id="id156">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id157">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id158">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id159">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065924">LP#1065924</a>: Element proxies could disappear during garbage collection
-in PyPy without proper cleanup.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065139">LP#1065139</a>: static MacOS-X build failed in Py3.</li>
-</ul>
-</div>
-<div class="section" id="id160">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id161">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id162">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id163">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>End-of-file handling was incorrect in iterparse() when reading from
-a low-level C file stream and failed in libxml2 2.9.0 due to its
-improved consistency checks.</li>
-</ul>
-</div>
-<div class="section" id="id164">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The build no longer uses Cython by default unless the generated C files
-are missing. To use Cython, pass the option "--with-cython". To ignore
-the fatal build error when Cython is required but not available (e.g. to
-run special setup.py commands that do not actually run a build), pass
-"--without-cython".</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2012-09-26">
-<h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id165">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Python level access to (optional) libxml2 memory debugging features
-to simplify debugging of memory leaks etc.</li>
-</ul>
-</div>
-<div class="section" id="id166">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix a memory leak in XPath by switching to Cython 0.17.1.</li>
-<li>Some tests were adapted to work with PyPy.</li>
-</ul>
-</div>
-<div class="section" id="id167">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha2-2012-08-23">
-<h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id168">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">.iter()</tt> method of elements now accepts <tt class="docutils literal">tag</tt> arguments like
-<tt class="docutils literal"><span class="pre">"{*}name"</span></tt> to search for elements with a given local name in any
-namespace. With this addition, all combinations of wildcards now work
-as expected:
-<tt class="docutils literal">"{ns}name"</tt>, <tt class="docutils literal"><span class="pre">"{}name"</span></tt>, <tt class="docutils literal"><span class="pre">"{*}name"</span></tt>, <tt class="docutils literal"><span class="pre">"{ns}*"</span></tt>, <tt class="docutils literal"><span class="pre">"{}*"</span></tt>
-and <tt class="docutils literal"><span class="pre">"{*}*"</span></tt>. Note that <tt class="docutils literal">"name"</tt> is equivalent to <tt class="docutils literal"><span class="pre">"{}name"</span></tt>,
-but <tt class="docutils literal">"*"</tt> is <tt class="docutils literal"><span class="pre">"{*}*"</span></tt>.
-The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
-<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
-and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
-<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
-<tt class="docutils literal">iterparse()</tt> class. Patch by Simon Sapin.</li>
-<li>C14N allows specifying the inclusive prefixes to be promoted
-to top-level during exclusive serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id169">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
-failed to read the entire string.</li>
-</ul>
-</div>
-<div class="section" id="id170">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha1-2012-07-31">
-<h1>3.0alpha1 (2012-07-31)</h1>
-<div class="section" id="id171">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Initial support for building in PyPy (through cpyext).</li>
-<li>DTD objects gained an API that allows read access to their
-declarations.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
-from grep output) and for surrounding the output with a new root
-tag.</li>
-<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
-types (such as string subtypes) when building elements around them.</li>
-<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
-argument supports passing a set of tags. Tree nodes will be
-returned by the iterators if they match any of the tags.</li>
-</ul>
-</div>
-<div class="section" id="id172">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods in <tt class="docutils literal">lxml.objectify</tt> no longer use XPath
-internally, which makes them faster in many cases (especially when
-short circuiting after a single or couple of elements) and fixes
-some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>. Note that
-this means that they no longer support arbitrary XPath expressions
-but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
-The previous implementation was also redundant with the normal
-XPath support, which can be used as a replacement.</li>
-<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
-instruction that happened to be in the wrong spot. (Same for the
-other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
-<li>The error logging is less intrusive and avoids a global setup where
-possible.</li>
-<li>Fixed undefined names in html5lib parser.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
-<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
-another Element as parameter.</li>
-<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
-properties immutable (as in objectify, for example), inserting text
-when creating Elements through the E-Factory feature of the class
-constructor would fail with an exception, stating that the text
-cannot be modified.</li>
-</ul>
-</div>
-<div class="section" id="id173">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code base was overhauled to properly use 'const' where the API
-of libxml2 and libxslt requests it. This also has an impact on the
-public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
-well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
-Code that uses these declarations may have to be adapted. On the
-plus side, this fixes several C compiler warnings, also for user
-code, thus making it easier to spot real problems again.</li>
-<li>The functionality of "lxml.cssselect" was moved into a separate PyPI
-package called "cssselect". To continue using it, you must install
-that package separately. The "lxml.cssselect" module is still
-available and provides the same interface, provided the "cssselect"
-package can be imported at runtime.</li>
-<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
-arguments are now sorted by (namespaced) name before being created
-to make their order predictable for serialisation and iteration.
-Note that adding or deleting attributes afterwards does not take
-that order into account, i.e. setting a new attribute appends it
-after the existing ones.</li>
-<li>Several classes that are for internal use only were removed
-from the <tt class="docutils literal">lxml.etree</tt> module dict:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
-_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
-__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
-_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
-_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
-_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
-_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
-_ParserSchemaValidationContext, _XPathContext,
-_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
-<li>Several internal classes can no longer be inherited from:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
-_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
-_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
-_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
-_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id174">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id175">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id176">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
-failed to read the entire string.</li>
-</ul>
-</div>
-<div class="section" id="id177">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id178">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id179">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id180">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when merging text nodes in <tt class="docutils literal">element.remove()</tt>.</li>
-<li>Crash in sax/target parser when reporting empty doctype.</li>
-</ul>
-</div>
-<div class="section" id="id181">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id182">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id183">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id184">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when building an nsmap (Element property) with empty
-namespace URIs.</li>
-<li>Crash due to race condition when errors (or user messages) occur
-during threaded XSLT processing.</li>
-<li>XSLT stylesheet compilation could ignore compilation errors.</li>
-</ul>
-</div>
-<div class="section" id="id185">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id186">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id187">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.tostring()</tt> gained new serialisation options
-<tt class="docutils literal">with_tail</tt> and <tt class="docutils literal">doctype</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id188">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
-requesting start events.</li>
-<li>Fixed parsing of more selectors in cssselect. Whitespace before
-pseudo-elements and pseudo-classes is significant as it is a
-descendant combinator.
-"E :pseudo" should parse the same as "E *:pseudo", not "E:pseudo".
-Patch by Simon Sapin.</li>
-<li>lxml.html.diff no longer raises an exception when hitting
-'img' tags without 'src' attribute.</li>
-</ul>
-</div>
-<div class="section" id="id189">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id190">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id191">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
-<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
-declarations (and generally clean up the namespace declarations)
-after removing the type annotations.</li>
-<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
-copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
-of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
-</ul>
-</div>
-<div class="section" id="id192">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed the "descendant" bug in cssselect a second time (after a first
-fix in lxml 2.3.1). The previous change resulted in a serious
-performance regression for the XPath based evaluation of the
-translated expression. Note that this breaks the usage of some of
-the generated XPath expressions as XSLT location paths that
-previously worked in 2.3.1.</li>
-<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
-">", "+" and "~" is now correctly ignored. Previously it was parsed as
-a descendant combinator. For example, "div> .foo" was parsed the same as
-"div>* .foo" instead of "div>.foo". Patch by Simon Sapin.</li>
-</ul>
-</div>
-<div class="section" id="id193">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id194">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id195">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New option <tt class="docutils literal">kill_tags</tt> in <tt class="docutils literal">lxml.html.clean</tt> to remove specific
-tags and their content (i.e. their whole subtree).</li>
-<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
-pseudo-attributes from the text content of processing instructions.</li>
-<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
-used to compile external C code against lxml.etree. This is
-specifically required for statically linked lxml builds when code
-needs to compile against the exact same header file versions as lxml
-itself.</li>
-<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
-<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
-closed after reading or not. By default, the file will be closed,
-as the user is not expected to keep a reference to it.</li>
-</ul>
-</div>
-<div class="section" id="id196">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning didn't remove 'data:' links.</li>
-<li>The html5lib parser integration now uses the 'official'
-implementation in html5lib itself, which makes it work with newer
-releases of the library.</li>
-<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
-tag name when the corresponding start event inferred the same plain
-tag name to be in the default namespace.</li>
-<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
-<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use. This
-reverts a change in lxml 2.3 where all files would be closed. It is
-the users responsibility to properly close the file(-like) object,
-also in error cases.</li>
-<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
-<li>In lxml.cssselect, use the xpath 'A//B' (short for
-'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
-the css descendant selector ('A B'). This makes a few edge cases
-like <tt class="docutils literal">"div <span class="pre">*:last-child"</span></tt> consistent with the selector behavior in
-WebKit and Firefox, and makes more css expressions valid location
-paths (for use in xsl:template match).</li>
-<li>In lxml.html, non-selected <tt class="docutils literal"><option></tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal"><option></tt> values to/from a multiple select form
-field properly selects them and unselects them.</li>
-</ul>
-</div>
-<div class="section" id="id197">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Static builds can specify the download directory with the
-<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id198">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id199">
-<h2>Features added</h2>
-<ul class="simple">
-<li>When looking for children, <tt class="docutils literal">lxml.objectify</tt> takes '{}tag' as
-meaning an empty namespace, as opposed to the parent namespace.</li>
-</ul>
-</div>
-<div class="section" id="id200">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When finished reading from a file-like object, the parser
-immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
-<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
-file.</li>
-<li>Work-around for libxml2 bug that can leave the HTML parser in a
-non-functional state after parsing a severely broken document (fixed
-in libxml2 2.7.8).</li>
-<li><tt class="docutils literal">marque</tt> tag in HTML cleanup code is correctly named <tt class="docutils literal">marquee</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id201">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some public functions in the Cython-level C-API have more explicit
-return types.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2010-09-06">
-<h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id202">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id203">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
-<tt class="docutils literal">base_url</tt> parameters.</li>
-<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
-<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
-use of os.tempnam. It now takes an optional 'encoding' parameter.</li>
-</ul>
-</div>
-<div class="section" id="id204">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha2-2010-07-24">
-<h1>2.3alpha2 (2010-07-24)</h1>
-<div class="section" id="id205">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id206">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XSLT when generating text-only result documents with a
-stylesheet created in a different thread.</li>
-</ul>
-</div>
-<div class="section" id="id207">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
-(following ElementTree 1.3).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2010-06-19">
-<h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id208">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Keyword argument <tt class="docutils literal">namespaces</tt> in <tt class="docutils literal">lxml.cssselect.CSSSelector()</tt>
-to pass a prefix-to-namespace mapping for the selector.</li>
-<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
-globally registers a namespace prefix for a namespace that newly
-created Elements in that namespace will use automatically. Follows
-ElementTree 1.3.</li>
-<li>Support 'unicode' string name as encoding parameter in
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
-match the upcoming ElementTree 1.3 that will ship in the standard
-library of Python 3.2/2.7. This includes extended support for
-predicates as well as namespace prefixes (as known from XPath).</li>
-<li>During regular XPath evaluation, various ESXLT functions are
-available within their namespace when using libxslt 1.1.26 or later.</li>
-<li>Support passing a readily configured logger instance into
-<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
-<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
-override the DOCTYPE (internal subset) of the document.</li>
-<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
-to append the resulting content directly to an output element.</li>
-<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
-XSLT extension element itself.</li>
-<li>ISO-Schematron support based on the de-facto Schematron reference
-'skeleton implementation'.</li>
-<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
-parameters.</li>
-<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
-overhead.</li>
-<li>Setting the value of a namespaced attribute always uses a prefixed
-namespace instead of the default namespace even if both declare the
-same namespace URI. This avoids serialisation problems when an
-attribute from a default namespace is set on an element from a
-different namespace.</li>
-<li>XSLT extension elements: support for XSLT context nodes other than
-elements: document root, comments, processing instructions.</li>
-<li>Support for strings (in addition to Elements) in node-sets returned
-by extension functions.</li>
-<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
-the document on submit.</li>
-<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
-<li>Namespace URIs get validated against RFC 3986 at the API level
-(required by the XML namespace specification).</li>
-<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
-(compatible with ElementTree).</li>
-</ul>
-</div>
-<div class="section" id="id209">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>API is hardened against invalid proxy instances to prevent crashes
-due to incorrectly instantiated Element instances.</li>
-<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
-<li>Export ElementTree compatible XML parser class as
-<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
-<li>ObjectifiedDataElements in lxml.objectify were not hashable. They
-now use the hash value of the underlying Python value (string,
-number, etc.) to which they compare equal.</li>
-<li>Parsing broken fragments in lxml.html could fail if the fragment
-contained an orphaned closing '</div>' tag.</li>
-<li>Using XSLT extension elements around the root of the output document
-crashed.</li>
-<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr="val"]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr="val"]</span></tt> (with a space). The latter now matches the
-attribute independent of the element.</li>
-<li>Rewriting multiple links inside of HTML text content could end up
-replacing unrelated content as replacements could impact the
-reported position of subsequent matches. Modifications are now
-simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
-return links in reversed order if they appear inside the same text
-node. Thus, replacements and link-internal modifications no longer
-change the position of links reported afterwards.</li>
-<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
-not represent the complete raw value (including child tags etc.). It
-now serialises the complete content on read and replaces the
-complete content by a string on write.</li>
-<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
-parsing failed. Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
-called after parsing, regardless of the outcome.</li>
-</ul>
-</div>
-<div class="section" id="id210">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.1.2 and later.</li>
-<li>Static MS Windows builds can now download their dependencies
-themselves.</li>
-<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
-Element object. It therefore no longer requires the garbage
-collector to clean up.</li>
-<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id211">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id212">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li>Import fix for urljoin in Python 3.1+.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id213">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id214">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XSLT when generating text-only result documents with a
-stylesheet created in a different thread.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id215">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id216">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed several Python 3 regressions by building with Cython 0.11.3.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id217">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id218">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for running XSLT extension elements on the input root node
-(e.g. in a template matching on "/").</li>
-</ul>
-</div>
-<div class="section" id="id219">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XPath evaluation when reading smart strings from a document
-other than the original context document.</li>
-<li>Support recent versions of html5lib by not requiring its
-<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
-<li>Manually instantiating the custom element classes in
-<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
-<li>Invalid XML text characters were not rejected by the API when they
-appeared in unicode strings directly after non-ASCII characters.</li>
-<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
-<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
-<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
-<li>Crash in XSLT extension elements when the XSLT context node is not
-an element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id220">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id221">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id222">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id223">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id224">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
-parser.</li>
-<li>Looking up and deleting attributes without a namespace could hit a
-namespaced attribute of the same name instead.</li>
-<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
-ones) could leave a partially initialised element in the tree.</li>
-<li>Modifying trees that contain parsed entity references could result
-in an infinite loop.</li>
-<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
-attribute value was rejected as a non-unicode/non-ascii string</li>
-<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
-messages.</li>
-<li>Invalid syntax in CSS expressions could lead to an infinite loop in
-the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS special character escapes were not properly handled in
-<tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
-attribute were not handled correctly. The HTML standard dictates
-that their value is defined by their text content. This is now
-supported by lxml.html.</li>
-<li>XPath raised a TypeError when finding CDATA sections. This is now
-fully supported.</li>
-<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
-namespaces when annotation is disabled.</li>
-<li>Feed parser failed to honour the 'recover' option on parse errors.</li>
-<li>Diverting the error logging to Python's logging system was broken.</li>
-</ul>
-</div>
-<div class="section" id="id225">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id226">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id227">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New helper functions <tt class="docutils literal">strip_attributes()</tt>, <tt class="docutils literal">strip_elements()</tt>,
-<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
-from a subtree.</li>
-</ul>
-</div>
-<div class="section" id="id228">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Namespace cleanup on subtree insertions could result in missing
-namespace declarations (and potentially crashes) if the element
-defining a namespace was deleted and the namespace was not used by
-the top element of the inserted subtree but only in deeper subtrees.</li>
-<li>Raising an exception from a parser target callback didn't always
-terminate the parser.</li>
-<li>Only {true, false, 1, 0} are accepted as the lexical representation for
-BoolElement ({True, False, T, F, t, f} not any more), restoring lxml <= 2.0
-behaviour.</li>
-</ul>
-</div>
-<div class="section" id="id229">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id230">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id231">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Injecting default attributes into a document during XML Schema
-validation (also at parse time).</li>
-<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
-restrictions imposed by libxml2 2.7.</li>
-</ul>
-</div>
-<div class="section" id="id232">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The script for statically building libxml2 and libxslt didn't work
-in Py3.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
-for parsing (which could lead to a crash before release 2.6.24).</li>
-</ul>
-</div>
-<div class="section" id="id233">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id234">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id235">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
-<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
-on serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id236">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing an XML Schema with external imports from a
-filename.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2009-02-27">
-<h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id237">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support strings and instantiable Element classes as child arguments
-to the constructor of custom Element classes.</li>
-<li>GZip compression support for serialisation to files and file-like
-objects.</li>
-</ul>
-</div>
-<div class="section" id="id238">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Deep-copying an ElementTree copied neither its sibling PIs and
-comments nor its internal/external DTD subsets.</li>
-<li>Soupparser failed on broken attributes without values.</li>
-<li>Crash in XSLT when overwriting an already defined attribute using
-<tt class="docutils literal">xsl:attribute</tt>.</li>
-<li>Crash bug in exception handling code under Python 3. This was due
-to a problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
-<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
-was evaluated incorrectly.</li>
-</ul>
-</div>
-<div class="section" id="id239">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.0.1.</li>
-<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
-for Elements without text content.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2009-02-17">
-<h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id240">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">XSLT.strparam()</tt> class method to wrap quoted string parameters
-that require escaping.</li>
-</ul>
-</div>
-<div class="section" id="id241">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in XPath evaluators.</li>
-<li>Crash when parsing indented XML in one thread and merging it with
-other documents parsed in another thread.</li>
-<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
-string failed.</li>
-<li>Fixes following changes in Python 3.0.1.</li>
-<li>Minor fixes for Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id242">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The global error log (which is copied into the exception log) is now
-local to a thread, which fixes some race conditions.</li>
-<li>More robust error handling on serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2009-01-25">
-<h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id243">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling. This was due to a
-problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
-<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url("link")</span></tt> incorrectly
-(treating the quotation marks as part of the link).</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id244">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id245">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling. This was due to a
-problem in Cython, not lxml itself.</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2008-12-12">
-<h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id246">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Allow <tt class="docutils literal">lxml.html.diff.htmldiff</tt> to accept Element objects, not
-just HTML strings.</li>
-</ul>
-</div>
-<div class="section" id="id247">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-<li>Fixed missing whitespace before <tt class="docutils literal"><span class="pre">Link:...</span></tt> in <tt class="docutils literal">lxml.html.diff</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id248">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Export <tt class="docutils literal">lxml.html.parse</tt>.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id249">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id250">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id251">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id252">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2008-11-23">
-<h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id253">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for XSLT result tree fragments in XPath/XSLT extension
-functions.</li>
-<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
-<li>New options for exclusive C14N and C14N without comments.</li>
-<li>Instantiating a custom Element classes creates a new Element.</li>
-</ul>
-</div>
-<div class="section" id="id254">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>XSLT didn't inherit the parse options of the input document.</li>
-<li>0-bytes could slip through the API when used inside of Unicode
-strings.</li>
-<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
-that end in a parenthesis, will be linked in their entirety (typical
-with Wikipedia links).</li>
-</ul>
-</div>
-<div class="section" id="id255">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id256">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id257">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id258">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-<li>Parser Unicode decoding errors could get swallowed by other
-exceptions.</li>
-<li>Name/import errors in some Python modules.</li>
-<li>Internal DTD subsets that did not specify a system or public ID were
-not serialised and did not appear in the docinfo property of
-ElementTrees.</li>
-<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
-<li>Test suite fixes for libxml2 2.7.</li>
-<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
-<li>Resolver.resolve_file() was broken.</li>
-<li>Overriding the parser encoding didn't work for many encodings.</li>
-</ul>
-</div>
-<div class="section" id="id259">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id260">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id261">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id262">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id263">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.etree now tries to find the absolute path name of files when
-parsing from a file-like object. This helps custom resolvers when
-resolving relative URLs, as lixbml2 can prepend them with the path
-of the source document.</li>
-</ul>
-</div>
-<div class="section" id="id264">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-<div class="section" id="id265">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id266">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id267">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id268">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id269">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id270">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>Encoding problem when including text with ElementInclude under
-Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id271">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id272">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id273">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
-with whitespace in URL attributes.</li>
-</ul>
-</div>
-<div class="section" id="id274">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id275">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id276">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id277">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
-keyword option).</li>
-<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
-with whitespace in URL attributes.</li>
-</ul>
-</div>
-<div class="section" id="id278">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Custom resolvers were not used for XMLSchema includes/imports and
-XInclude processing.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id279">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
-<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
-<li>Speed-up when running XSLTs on documents from other threads</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id280">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id281">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-</ul>
-</div>
-<div class="section" id="id282">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Descending dot-separated classes in CSS selectors were not resolved
-correctly.</li>
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Potential threading problem in XInclude.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-</ul>
-</div>
-<div class="section" id="id283">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2008-06-19">
-<h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id284">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-<li>Support for parsing from file-like objects that return unicode
-strings.</li>
-<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
-namespace declarations from a (sub)tree (experimental).</li>
-<li>XSLT results support the buffer protocol in Python 3.</li>
-<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
-a parsable string will return either a UTF-8 encoded byte string, a
-unicode string or a tree, based on the type of the input.
-Previously, the result was always a byte string or a tree.</li>
-<li>Support for Python 2.6 and 3.0 beta.</li>
-<li>File name handling now uses a heuristic to convert between byte
-strings (usually filenames) and unicode strings (usually URLs).</li>
-<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
-<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
-on reading under Python 2.x.</li>
-<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
-lxml.html (experimental).</li>
-<li>Most features in lxml.html work for XHTML namespaced tag names
-(experimental).</li>
-</ul>
-</div>
-<div class="section" id="id285">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-<li>A number of problems related to unicode/byte string conversion of
-filenames and error messages were fixed.</li>
-<li>Building on MacOS-X now passes the "flat_namespace" option to the C
-compiler, which reportedly prevents build quirks and crashes on this
-platform.</li>
-<li>Windows build was broken.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id286">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
-namespaces, etc. will result in a ValueError instead of an
-AssertionError (just like the tag well-formedness check).</li>
-<li>Up to several times faster attribute access (i.e. tree traversal) in
-lxml.objectify.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id287">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id288">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id289">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find("tag[child]")</span></tt>.</li>
-<li>Windows build was broken.</li>
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id290">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml should now build without problems on MacOS-X.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2008-05-02">
-<h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id291">
-<h2>Features added</h2>
-<ul class="simple">
-<li>All parse functions in lxml.html take a <tt class="docutils literal">parser</tt> keyword argument.</li>
-<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
-attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
-pre-configured for the lxml.html package.</li>
-</ul>
-</div>
-<div class="section" id="id292">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Passing an nsmap when creating an Element will no longer strip
-redundantly defined namespace URIs. This prevented the definition
-of more than one prefix for a namespace on the same Element.</li>
-</ul>
-</div>
-<div class="section" id="id293">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>If the default namespace is redundantly defined with a prefix on the
-same Element, the prefix will now be preferred for subelements and
-attributes. This allows users to work around a problem in libxml2
-where attributes from the default namespace could serialise without
-a prefix even when they appear on an Element with a different
-namespace (i.e. they would end up in the wrong namespace).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id294">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id295">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id296">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state "STOPPED", which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 >= 2.6.31.</li>
-</ul>
-</div>
-<div class="section" id="id297">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta1-2008-04-15">
-<h1>2.1beta1 (2008-04-15)</h1>
-<div class="section" id="id298">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
-<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
-sections. Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
-sections by their text content.</li>
-<li><tt class="docutils literal">CDATA()</tt> factory to wrap string content as CDATA section.</li>
-</ul>
-</div>
-<div class="section" id="id299">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state "STOPPED", which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 >= 2.6.31.</li>
-<li>lxml.etree accepted non well-formed namespace prefix names.</li>
-</ul>
-</div>
-<div class="section" id="id300">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
-takes care of namespace cleanup when moving elements between
-different namespace contexts.</li>
-<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
-parser or through lxml.html now end up in a new HTML document
-(doctype HTML 4.01 Transitional) instead of a generic XML document.
-This mostly impacts the serialisation and the availability of a DTD
-context.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id301">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id302">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id303">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Hanging thread in conjunction with GTK threading.</li>
-<li>Crash bug in iterparse when moving elements into other documents.</li>
-<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</li>
-<li><tt class="docutils literal"><span class="pre">ElementTree.find*()</span></tt> didn't accept QName objects.</li>
-</ul>
-</div>
-<div class="section" id="id304">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha1-2008-03-27">
-<h1>2.1alpha1 (2008-03-27)</h1>
-<div class="section" id="id305">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
-<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
-returns a dict of access configuration options.</li>
-<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
-<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
-<li>Extension elements for XSLT (experimental!)</li>
-<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
-an Element.</li>
-<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
-</ul>
-</div>
-<div class="section" id="id306">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Default encoding for plain text serialisation was different from
-that of XML serialisation (UTF-8 instead of ASCII).</li>
-</ul>
-</div>
-<div class="section" id="id307">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Minor API speed-ups.</li>
-<li>The benchmark suite now uses tail text in the trees, which makes the
-absolute numbers incomparable to previous results.</li>
-<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
-used to enable syntax highlighting for the doctest examples.</li>
-</ul>
-<p>Most long-time deprecated functions and methods were removed:</p>
-<ul>
-<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
-<tt class="docutils literal">etree.use_global_python_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
-<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
-<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
-<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
-yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
-<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
-<tt class="docutils literal">objectify.set_default_parser()</tt></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id308">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id309">
-<h2>Features added</h2>
-<ul class="simple">
-<li>soupparser.parse() allows passing keyword arguments on to
-BeautifulSoup.</li>
-<li><tt class="docutils literal">fromstring()</tt> method in <tt class="docutils literal">lxml.html.soupparser</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id310">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
-<tt class="docutils literal"><br></tt>).</li>
-<li>Handle entity replacements correctly in target parser.</li>
-<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
-<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
-which made them turn up in text content.</li>
-<li>Attribute assignment of custom PyTypes in objectify could fail to
-correctly serialise the value to a string.</li>
-</ul>
-</div>
-<div class="section" id="id311">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
-<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API. The old module
-remains for compatibility with ElementTree's own ElementSoup module.</li>
-<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
-build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
-<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
-compiler options. The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
-option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id312">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id313">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support passing <tt class="docutils literal">base_url</tt> to file parser functions to override
-the filename of the file(-like) object.</li>
-</ul>
-</div>
-<div class="section" id="id314">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The prefix for objectify's pytype namespace was missing from the set
-of default prefixes.</li>
-<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
-<li>Error type names in RelaxNG were reported incorrectly.</li>
-<li>Slice deletion bug fixed in objectify.</li>
-</ul>
-</div>
-<div class="section" id="id315">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
-<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
-(<tt class="docutils literal"><span class="pre">method="xml"</span></tt> for XHTML output).</li>
-<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
-<tt class="docutils literal">base_url</tt> argument.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id316">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id317">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
-<li>Loads of new docstrings reflect the signature of functions and
-methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
-</ul>
-</div>
-<div class="section" id="id318">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
-<tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
-was an unnamed input field. Now unnamed input fields are completely
-ignored.</li>
-<li>Setting an element slice in objectify could insert slice-overlapping
-elements at the wrong position.</li>
-</ul>
-</div>
-<div class="section" id="id319">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The generated API documentation was cleaned up and disburdened from
-non-public classes etc.</li>
-<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
-<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml. If
-you want to use it, feel free to copy it over to your own source
-base.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
-compiler options.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id320">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id321">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Passing the <tt class="docutils literal">unicode</tt> type as <tt class="docutils literal">encoding</tt> to <tt class="docutils literal">tostring()</tt> will
-serialise to unicode. The <tt class="docutils literal">tounicode()</tt> function is now
-deprecated.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
-<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
-parser with the usual objectify setup.</li>
-<li>Plain ASCII XPath string results are no longer forced into unicode
-objects as in 2.0beta1, but are returned as plain strings as before.</li>
-<li>All XPath string results are 'smart' objects that have a
-<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
-<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
-<li>More accurate exception messages in validator creation.</li>
-<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
-<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
-selection make their Element container accessible through a
-<tt class="docutils literal">getparent()</tt> method. As a side-effect, they are now always
-unicode objects (even ASCII strings).</li>
-<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
-copy if they were not created in that thread.</li>
-<li>Invalid entity names and character references will be rejected by
-the <tt class="docutils literal">Entity()</tt> factory.</li>
-<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
-e.g. <tt class="docutils literal">&amp;</tt>.</li>
-<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
-in ET 1.3)</li>
-<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
-<li>ElementTree compatible TreeBuilder class.</li>
-<li>Use default prefixes for some common XML namespaces.</li>
-<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
-two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
-more general <tt class="docutils literal">allow_element(el)</tt>.</li>
-<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
-etree and in objectify</li>
-<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
-resolving a document as string data.</li>
-<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
-<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
-the special checking for one test.</li>
-<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
-The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
-<tt class="docutils literal">error_log</tt>.</li>
-<li>The normal parsers and the feed parser interface are now separated
-and can be used concurrently on the same parser instance.</li>
-<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
-ElementTree 1.3</li>
-<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
-parsing with the HTML parser (note that this interface may be
-subject to change)</li>
-<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
-of the parsed documents.</li>
-<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
-<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
-types in one step. Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
-<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
-argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
-serialise as XML, HTML or plain text content.</li>
-<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
-<tt class="docutils literal">findall()</tt></li>
-<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
-<li>Setting a QName object as value of the .text property or as an attribute
-will resolve its prefix in the respective context</li>
-<li>ElementTree-like parser target interface as described in
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
-<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
-(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
-<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
-integration with objectify. Provides extended type support based on
-registered PyTypes.</li>
-<li>XSLT objects now support deep copying</li>
-<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
-subelement straight with text, tail and attributes.</li>
-<li>XPath extension functions can now access the current context node
-(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
-(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
-parameter</li>
-<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
-<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
-doctests based on XML/HTML output. Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
-<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
-<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
-selectors.</li>
-<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
-treatment.</li>
-<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
-instance and no longer global.</li>
-<li>Schematron validation (incomplete in libxml2)</li>
-<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
-conversion function to strings to support setting text values from arbitrary
-types.</li>
-<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes. XML
-parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
-False to keep entities in the document.</li>
-<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
-<li>Error specific messages in XPath parsing and evaluation
-NOTE: for evaluation errors, you will now get an XPathEvalError instead of
-an XPathSyntaxError. To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
-<li>The regular expression functions in XPath now support passing a node-set
-instead of a string</li>
-<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
-<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
-</ul>
-</div>
-<div class="section" id="id322">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
-<li>Some Python 2.4-isms prevented lxml from building/running under
-Python 2.3.</li>
-<li>XPath on ElementTrees could crash when selecting the virtual root
-node of the ElementTree.</li>
-<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
-<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
-<li>Minor bugs in XSLT error message formatting.</li>
-<li>Result document memory leak in target parser.</li>
-<li>Target parser failed to report comments.</li>
-<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal"><object></tt>
-tags weren't recognized. (Note: plugin-specific link parameters
-still aren't recognized.) Also, the <tt class="docutils literal"><embed></tt> tag, though not
-standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
-<li>Using custom resolvers on XSLT stylesheets parsed from a string
-could request ill-formed URLs.</li>
-<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal"><tag <span class="pre">xmlns="..."></span></tt> in your
-output, it will then be namespace-neutral (before the ellipsis was
-treated as a real namespace).</li>
-<li>AttributeError in feed parser on parse errors</li>
-<li>XML feed parser setup problem</li>
-<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
-<li>lxml failed to serialise namespace declarations of elements other than the
-root node of a tree</li>
-<li>Race condition in XSLT where the resolver context leaked between concurrent
-XSLT calls</li>
-<li>lxml.etree did not check tag/attribute names</li>
-<li>The XML parser did not report undefined entities as error</li>
-<li>The text in exceptions raised by XML parsers, validators and XPath
-evaluators now reports the first error that occurred instead of the last</li>
-<li>Passing '' as XPath namespace prefix did not raise an error</li>
-<li>Thread safety in XPath evaluators</li>
-</ul>
-</div>
-<div class="section" id="id323">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Exceptions carry only the part of the error log that is related to
-the operation that caused the error.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
-file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
-<li>The test suite now skips most doctests under Python 2.3.</li>
-<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
-realclean</tt> instead)</li>
-<li>Minor performance tweaks for Element instantiation and subelement
-creation</li>
-<li>Various places in the XPath, XSLT and iteration APIs now require
-keyword-only arguments.</li>
-<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
-match the order used in all other iteration methods. The second
-argument ('preceding') is now a keyword-only argument.</li>
-<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
-reverted to return an iterator as it did in lxml 1.x. The ET API
-specification allows it to return either a sequence or an iterator,
-and it traditionally returned a sequence in ET and an iterator in
-lxml. However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
-method, which should be used in new code wherever possible.</li>
-<li>The 'pretty printed' serialisation of ElementTree objects now
-inserts newlines at the root level between processing instructions,
-comments and the root tag.</li>
-<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
-<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
-required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
-<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
-<li>The module source files were renamed to "lxml.*.pyx", such as
-"lxml.etree.pyx". This was changed for consistency with the way
-Pyrex commonly handles package imports. The main effect is that
-classes now know about their fully qualified class name, including
-the package name of their module.</li>
-<li>Keyword-only arguments in some API functions, especially in the
-parsers and serialisers.</li>
-<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
-between HTML tags and XML tags based on the parser that was used to
-parse or create them. HTML tags no longer reject any non-ASCII
-characters in tag names but only spaces and the special characters
-<tt class="docutils literal"><span class="pre"><>&/"'</span></tt>.</li>
-<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
-(which can crash on certain XPath errors)</li>
-<li>Type annotation in objectify now preserves the already annotated type by
-default to prevent losing type information that is already there.</li>
-<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
-an iterator (ElementTree 1.3 compatible behaviour)</li>
-<li>objectify.PyType for None is now called "NoneType"</li>
-<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
-original name is still available as alias</li>
-<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
-generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
-<li>Major refactoring in XPath/XSLT extension function code</li>
-<li>Network access in parsers disabled by default</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id324">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id325">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Backported decref crash fix from 2.0</li>
-<li>Well hidden free-while-in-use crash bug in ObjectPath</li>
-</ul>
-</div>
-<div class="section" id="id326">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The test suites now run <tt class="docutils literal">gc.collect()</tt> in the <tt class="docutils literal">tearDown()</tt>
-methods. While this makes them take a lot longer to run, it also
-makes it easier to link a specific test to garbage collection
-problems that would otherwise appear in later tests.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id327">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id328">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id329">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.etree could crash when adding more than 10000 namespaces to a
-document</li>
-<li>lxml failed to serialise namespace declarations of elements other
-than the root node of a tree</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id330">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id331">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">ElementMaker</tt> in <tt class="docutils literal">lxml.builder</tt> now accepts the keyword arguments
-<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
-creates.</li>
-<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
-and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
-subset of the document respectively.</li>
-<li>Serialising an ElementTree now includes any internal DTD subsets that are
-part of the document, as well as comments and PIs that are siblings of the
-root node.</li>
-</ul>
-</div>
-<div class="section" id="id332">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing with the <tt class="docutils literal">no_network</tt> option could fail</li>
-</ul>
-</div>
-<div class="section" id="id333">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
-an Error as 1.3.3 did. The reason is that a number of projects currently
-misuse the previous lack of tag name validation to generate namespace
-prefixes without declaring namespaces. Apart from the danger of generating
-broken XML this way, it also breaks most of the namespace-aware tools in
-XML, including XPath, XSLT and validation. lxml 1.3.x will continue to
-support this bug with a Warning, while lxml 2.0 will be strict about
-well-formed tag names (not only regarding ':').</li>
-<li>Serialising an Element no longer includes its comment and PI siblings (only
-ElementTree serialisation includes them).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id334">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id335">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
-instructions and comments while parsing XML</li>
-<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
-<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
-the parser you pass.</li>
-<li>Support <tt class="docutils literal">base_url</tt> keyword argument in <tt class="docutils literal">HTML()</tt> and <tt class="docutils literal">XML()</tt></li>
-</ul>
-</div>
-<div class="section" id="id336">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing from Python Unicode strings failed on some platforms</li>
-<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id337">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id338">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id339">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>"deallocating None" crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id340">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id341">
-<h2>Features added</h2>
-<ul class="simple">
-<li>objectify.DataElement now supports setting values from existing data
-elements (not just plain Python types) and reuses defined namespaces etc.</li>
-<li>E-factory support for lxml.objectify (<tt class="docutils literal">objectify.E</tt>)</li>
-</ul>
-</div>
-<div class="section" id="id342">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Better way to prevent crashes in Element proxy cleanup code</li>
-<li>objectify.DataElement didn't set up None value correctly</li>
-<li>objectify.DataElement didn't check the value against the provided type hints</li>
-<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id343">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id344">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
-scheme that can access the entire tree in read-only mode to help determining
-a suitable Element class</li>
-<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
-<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
-<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
-adding processing instructions and comments around the root node</li>
-<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
-<li>Extended type annotation in objectify: cleaner annotation namespace setup
-plus new <tt class="docutils literal">deannotate()</tt> function</li>
-<li>Support for custom Element class instantiation in lxml.sax: passing a
-<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
-lookup context of that function</li>
-<li>'.' represents empty ObjectPath (identity)</li>
-<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
-<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
-keys/values/items for a libxml2 node</li>
-<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
-<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
-<li>Support for pickling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
-<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
-<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
-a better handling of namespaces when moving elements between documents.</li>
-</ul>
-</div>
-<div class="section" id="id345">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them lose their namespace
-declarations</li>
-<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
-<li>Replacing the children slice of an Element would cut off the tails of the
-original children</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
-<li>API functions now check incoming strings for XML conformity. Zero bytes or
-low ASCII characters are no longer accepted (AssertionError).</li>
-<li>XSLT parsing failed to pass resolver context on to imported documents</li>
-<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
-<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
-<li>More ET compatible behaviour when writing out XML declarations or not</li>
-<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
-<li>Documents lost their top-level PIs and comments on serialisation</li>
-<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
-PIs are copied.</li>
-<li>Possible memory leaks in namespace handling when moving elements between
-documents</li>
-</ul>
-</div>
-<div class="section" id="id346">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id347">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id348">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Build fixes for MS compiler</li>
-<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element["text"]</span></tt> failed</li>
-<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
-to access</li>
-<li>The pattern for attribute names in ObjectPath was too restrictive</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id349">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id350">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Rich comparison of QName objects</li>
-<li>Support for regular expressions in benchmark selection</li>
-<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
-<li>ElementInclude Python module for ElementTree compatible XInclude processing
-that honours custom resolvers registered with the source document</li>
-<li>ElementTree.parser property holds the parser used to parse the document</li>
-<li>setup.py has been refactored for greater readability and flexibility</li>
-<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
-runtime search paths has been renamed to --auto-rpath. This makes it
-possible to pass an --rpath directly to distutils; previously this was being
-shadowed.</li>
-</ul>
-</div>
-<div class="section" id="id351">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Element instantiation now uses locks to prevent race conditions with threads</li>
-<li>ElementTree.write() did not raise an exception when the file was not writable</li>
-<li>Error handling could crash under Python <= 2.4.1 - fixed by disabling thread
-support in these environments</li>
-<li>Element.find*() did not accept QName objects as path</li>
-</ul>
-</div>
-<div class="section" id="id352">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>code cleanup: redundant _NodeBase super class merged into _Element class
-Note: although the impact should be zero in most cases, this change breaks
-the compatibility of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id353">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id354">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Data elements in objectify support repr(), which is now used by dump()</li>
-<li>Source distribution now ships with a patched Pyrex</li>
-<li>New C-API function makeElement() to create new elements with text,
-tail, attributes and namespaces</li>
-<li>Reuse original parser flags for XInclude</li>
-<li>Simplified support for handling XSLT processing instructions</li>
-</ul>
-</div>
-<div class="section" id="id355">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parser resources were not freed before the next parser run</li>
-<li>Open files and XML strings returned by Python resolvers were not
-closed/freed</li>
-<li>Crash in the IDDict returned by XMLDTDID</li>
-<li>Copying Comments and ProcessingInstructions failed</li>
-<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
-<li>Memory leak when garbage collecting tailed root elements</li>
-<li>HTML script/style content was not propagated to .text</li>
-<li>Show text xincluded between text nodes correctly in .text and .tail</li>
-<li>'integer * objectify.StringElement' operation was not supported</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id356">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id357">
-<h2>Features added</h2>
-<ul class="simple">
-<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
-<li>countchildren() method on objectify.ObjectifiedElement</li>
-<li>Support custom elements for tree nodes in lxml.objectify</li>
-</ul>
-</div>
-<div class="section" id="id358">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.objectify failed to support long data values (e.g., "123L")</li>
-<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
-<li>Factories objectify.Element() and objectify.DataElement() were missing
-<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
-<li>Changing the default parser in lxml.objectify did not update the factories
-Element() and DataElement()</li>
-<li>Let lxml.objectify.Element() always generate tree elements (not data
-elements)</li>
-<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id359">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id360">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '<!-- comment -->' and
-'<?pi-target content?>' for repr()</li>
-<li>Parsers are now the preferred (and default) place where element class lookup
-schemes should be registered. Namespace lookup is no longer supported by
-default.</li>
-<li>Support for Python 2.5 beta</li>
-<li>Unlock the GIL for deep copying documents and for XPath()</li>
-<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
-<li>Support for parser options in iterparse()</li>
-<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
-tuples</li>
-<li>The XPath expression "/" now returns an empty list instead of raising an
-exception</li>
-<li>XML-Object API on top of lxml (lxml.objectify)</li>
-<li>Customizable Element class lookup:<ul>
-<li>different pre-implemented lookup mechanisms</li>
-<li>support for externally provided lookup functions</li>
-</ul>
-</li>
-<li>Support for processing instructions (ET-like, not compatible)</li>
-<li>Public C-level API for independent extension modules</li>
-<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
-<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
-documentation for differences)</li>
-<li>Element.nsmap property returns a mapping of all namespace prefixes known at
-the Element to their namespace URI</li>
-<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
-<li>Threading support in parsers and serializers:<ul>
-<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
-<li>File operations (on file names) free the GIL</li>
-<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
-<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
-</ul>
-</li>
-<li>Element iteration over XPath axes:<ul>
-<li>Element.iterdescendants() iterates over the descendants of an element</li>
-<li>Element.iterancestors() iterates over the ancestors of an element (from
-parent to parent)</li>
-<li>Element.itersiblings() iterates over either the following or preceding
-siblings of an element</li>
-<li>Element.iterchildren() iterates over the children of an element in either
-direction</li>
-<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
-generated elements</li>
-</ul>
-</li>
-<li>Element.getnext() and Element.getprevious() return the direct siblings of an
-element</li>
-</ul>
-</div>
-<div class="section" id="id361">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>filenames with local 8-bit encoding were not supported</li>
-<li>1.1beta did not compile under Python 2.3</li>
-<li>ignore unknown 'pyval' attribute values in objectify</li>
-<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
-<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
-<li>XPathSyntaxError now inherits from XPathError</li>
-<li>Threading race conditions in RelaxNG and XMLSchema</li>
-<li>Crash when mixing elements from XSLT results into other trees, concurrent
-XSLT is only allowed when the stylesheet was parsed in the main thread</li>
-<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
-differences in the regular expression syntax)</li>
-<li>Setting element.text to '' returned None on request, not the empty string</li>
-<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
-<li>Creating documents no longer copies the parser for later URL resolving. For
-performance reasons, only a reference is kept. Resolver updates on the
-parser will now be reflected by documents that were parsed before the
-change. Although this should rarely become visible, it is a behavioral
-change from 1.0.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id362">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id363">
-<h2>Features added</h2>
-<ul class="simple">
-<li>List-like <tt class="docutils literal">Element.extend()</tt> method</li>
-</ul>
-</div>
-<div class="section" id="id364">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in tail handling in <tt class="docutils literal">Element.replace()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id365">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id366">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.replace(old, new) method to replace a subelement by another one</li>
-</ul>
-</div>
-<div class="section" id="id367">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when mixing elements from XSLT results into other trees</li>
-<li>Copying/deepcopying did not work for ElementTree objects</li>
-<li>Setting an attribute to a non-string value did not raise an exception</li>
-<li>Element.remove() deleted the tail text from the removed Element</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id368">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id369">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for setting a custom default Element class as opposed to namespace
-specific classes (which still override the default class)</li>
-</ul>
-</div>
-<div class="section" id="id370">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Rare exceptions in Python list functions were not handled</li>
-<li>Parsing accepted unicode strings with XML encoding declaration in certain
-cases</li>
-<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
-<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
-<li>XSLT and parser exception messages include the error line number</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id371">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id372">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Repeated calls to Element.attrib now efficiently return the same instance</li>
-</ul>
-</div>
-<div class="section" id="id373">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Document deallocation could crash in certain garbage collection scenarios</li>
-<li>Extension function calls in XSLT variable declarations could break the
-stylesheet and crash on repeated calls</li>
-<li>Deep copying Elements could lose namespaces declared in parents</li>
-<li>Deep copying Elements did not copy tail</li>
-<li>Parsing file(-like) objects failed to load external entities</li>
-<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
-<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
-<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
-<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id374">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id375">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.getiterator() and the findall() methods support finding arbitrary
-elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
-<li>Another speedup in tree iteration code</li>
-<li>General speedup of Python Element object creation and deallocation</li>
-<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
-<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
-<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
-document that contains the element.</li>
-<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
-find the element in the tree structure</li>
-<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
-<li>Comment texts can be changed through the API</li>
-<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
-<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
-<li>ElementTree.write() no longer serializes in memory (reduced memory
-footprint)</li>
-<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
-<li>Support for writing the XML representation of Elements and ElementTrees to
-Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
-<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
-<li>Parsing a unicode string no longer copies the string (reduced memory
-footprint)</li>
-<li>Parsing file-like objects reads chunks rather than the whole file (reduced
-memory footprint)</li>
-<li>Parsing StringIO objects from the start avoids copying the string (reduced
-memory footprint)</li>
-<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
-information, original encoding and XML version as seen by the parser</li>
-<li>etree module can be compiled without libxslt by commenting out the line
-<tt class="docutils literal">include "xslt.pxi"</tt> near the end of the etree.pyx source file</li>
-<li>Better error messages in parser exceptions</li>
-<li>Error reporting also works in XSLT</li>
-<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
-resolvers are registered at parser level</li>
-<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
-enabled by default, can be switched off with 'regexp=False' keyword argument</li>
-<li>Support for exslt extensions (libexslt) and libxslt extra functions
-(node-set, document, write, output)</li>
-<li>Substantial speedup in XPath.evaluate()</li>
-<li>HTMLParser for parsing (broken) HTML</li>
-<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
-implementation of libxml2 (as opposed to ET compatible XMLID)</li>
-</ul>
-</div>
-<div class="section" id="id376">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in Element.__setitem__</li>
-<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
-<li>Memory leak in XPath extension functions</li>
-<li>Memory leak in unicode related setup code</li>
-<li>Element now raises ValueError on empty tag names</li>
-<li>Namespace fixing after moving elements between documents could fail if the
-source document was freed too early</li>
-<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -> 't')
-didn't reset the namespace</li>
-<li>Unknown constants from newer libxml2 versions could raise exceptions in the
-error handlers</li>
-<li>lxml.etree compiles much faster</li>
-<li>On libxml2 <= 2.6.22, parsing strings with encoding declaration could fail
-in certain cases</li>
-<li>Document reference in ElementTree objects was not updated when the root
-element was moved to a different document</li>
-<li>Running absolute XPath expressions on an Element now evaluates against the
-root tree</li>
-<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
-<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
-objects</li>
-<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
-<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
-<li>Memory leak when using iconv encoders in tostring/write</li>
-<li>Deep copying Elements and ElementTrees maintains the document information</li>
-<li>Serialization functions raise LookupError for unknown encodings</li>
-<li>Memory deallocation crash resulting from deep copying elements</li>
-<li>Some ElementTree methods could crash if the root node was not initialized
-(neither file nor element passed to the constructor)</li>
-<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
-dictionary</li>
-<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
-<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
-<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
-ElementTree root node as reference point</li>
-<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id377">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id378">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Speedup for Element.makeelement(): the new element reuses the original
-libxml2 document instead of creating a new empty one</li>
-<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
-<li>ElementTree compatible QName class</li>
-<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
-</ul>
-</div>
-<div class="section" id="id379">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
-<li>Memory leak if write_c14n fails to write the file after conversion</li>
-<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
-<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id380">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id381">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
-SaxError on mismatch</li>
-<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
-(startElement, endElement) and defaults to empty attributes (keyword
-argument)</li>
-<li>Speedup for repeatedly accessing element tag names</li>
-<li>Minor API performance improvements</li>
-</ul>
-</div>
-<div class="section" id="id382">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory deallocation bug when using XSLT output method "html"</li>
-<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
-<li>lxml.tests package will no longer be installed (is still in source tar)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id383">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id384">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging API for libxml2 error messages</li>
-<li>Various performance improvements</li>
-<li>Benchmark script for lxml, ElementTree and cElementTree</li>
-<li>Support for registering extension functions through new FunctionNamespace
-class (see doc/extensions.txt)</li>
-<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
-<li>Support for variables in XPath expressions (also in XPath class)</li>
-<li>XPath class for compiled XPath expressions</li>
-<li>XMLID module level function (ElementTree compatible)</li>
-<li>XMLParser API for customized libxml2 parser configuration</li>
-<li>Support for custom Element classes through new Namespace API (see
-doc/namespace_extensions.txt)</li>
-<li>Common exception base class LxmlError for module exceptions</li>
-<li>real iterator support in iter(Element), Element.getiterator()</li>
-<li>XSLT objects are callable, result trees support str()</li>
-<li>Added MANIFEST.in for easier creation of RPM files.</li>
-<li>'getparent' method on elements allows navigation to an element's
-parent element.</li>
-<li>Python core compatible SAX tree builder and SAX event generator. See
-doc/sax.txt for more information.</li>
-</ul>
-</div>
-<div class="section" id="id385">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Segfaults and memory leaks in various API functions of Element</li>
-<li>Segfault in XSLT.tostring()</li>
-<li>ElementTree objects no longer interfere, Elements can be root of different
-ElementTrees at the same time</li>
-<li>document('') works in XSLT documents read from files (in-memory documents
-cannot support this due to libxslt deficiencies)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id386">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id387">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
-does the same thing, and does <em>not</em> create a shallow copy, as that
-makes no sense in the context of libxml2 trees. This means a
-potential incompatibility with ElementTree, but there's more chance
-that it works than if copy.copy() isn't supported at all.</li>
-<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
-supported and parsing of gzipped XML files works.</li>
-<li>implemented index() on elements, allowing one to find the index of a
-SubElement.</li>
-</ul>
-</div>
-<div class="section" id="id388">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Use xslt-config instead of xml2-config to find out libxml2
-directories to take into account a case where libxslt is installed
-in a different directory than libxslt.</li>
-<li>Eliminate crash condition in iteration when text nodes are changed.</li>
-<li>Passing 'None' to tostring() does not result in a segfault anymore,
-but an AssertionError.</li>
-<li>Some test fixes for Windows.</li>
-<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
-syntax errors. This should be less confusing.</li>
-<li>Fixed error with uncaught exception in Pyrex code.</li>
-<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
-segfault.</li>
-<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
-<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
-libxml2 version, as it should.</li>
-<li>Passing a UTF-8 encoded string to the XML() function would fail;
-fixed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id389">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id390">
-<h2>Features added</h2>
-<ul class="simple">
-<li>parameters (XPath expressions) can be passed to XSLT using keyword
-parameters.</li>
-<li>Simple XInclude support. Calling the xinclude() method on a tree
-will process any XInclude statements in the document.</li>
-<li>XMLSchema support. Use the XMLSchema class or the convenience
-xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
-<li>Added convenience xslt() method on tree. This is less efficient
-than the XSLT object, but makes it easier to write quick code.</li>
-<li>Added convenience relaxng() method on tree. This is less efficient
-than the RelaxNG object, but makes it easier to write quick code.</li>
-<li>Make it possible to use XPathEvaluator with elements as well. The
-XPathEvaluator in this case will retain the element so multiple
-XPath queries can be made against one element efficiently. This
-replaces the second argument to the .evaluate() method that existed
-previously.</li>
-<li>Allow registerNamespace() to be called on an XPathEvaluator, after
-creation, to add additional namespaces. Also allow registerNamespaces(),
-which does the same for a namespace dictionary.</li>
-<li>Add 'prefix' attribute to element to be able to read prefix information.
-This is entirely read-only.</li>
-<li>It is possible to supply an extra nsmap keyword parameter to
-the Element() and SubElement() constructors, which supplies a
-prefix to namespace URI mapping. This will create namespace
-prefix declarations on these elements and these prefixes will show up
-in XML serialization.</li>
-</ul>
-</div>
-<div class="section" id="id391">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Killed yet another memory management related bug: trees created
-using newDoc would not get a libxml2-level dictionary, which caused
-problems when deallocating these documents later if they contained a
-node that came from a document with a dictionary.</li>
-<li>Moving namespaced elements between documents was problematic as
-references to the original document would remain. This has been fixed
-by applying xmlReconciliateNs() after each move operation.</li>
-<li>Can pass None to 'dump()' without segfaults.</li>
-<li>tostring() works properly for non-root elements as well.</li>
-<li>Cleaned out the tostring() method so it should handle encoding
-correctly.</li>
-<li>Cleaned out the ElementTree.write() method so it should handle encoding
-correctly. Writing directly to a file should also be faster, as there is no
-need to go through a Python string in that case. Made sure the test cases
-test both serializing to StringIO as well as serializing to a real file.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id392">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id393">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Changed setup.py so that library_dirs is also guessed. This should
-help with compilation on the Mac OS X platform, where otherwise the
-wrong library (shipping with the OS) could be picked up.</li>
-<li>Tweaked setup.py so that it picks up the version from version.txt.</li>
-</ul>
-</div>
-<div class="section" id="id394">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Do the right thing when handling namespaced attributes.</li>
-<li>fix bug where tostring() moved nodes into new documents. tostring()
-had very nasty side-effects before this fix, sorry!</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id395">
-<h1>0.5.1 (2005-04-09)</h1>
-<ul class="simple">
-<li>Python 2.2 compatibility fixes.</li>
-<li>unicode fixes in Element() and Comment() as well as XML(); unicode
-input wasn't properly being UTF-8 encoded.</li>
-</ul>
-</div>
-<div class="section" id="id396">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2019-02-08.
-
-</div>
-</body>
-</html>
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
+<title>lxml changelog</title>
+<link rel="stylesheet" href="style.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="lxml-changelog">
+<h1 class="title">lxml changelog</h1>
+
+<div class="section" id="id1">
+<h1>4.3.2 (2019-02-29)</h1>
+<div class="section" id="bugs-fixed">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in 4.3.1 when appending a child subtree with certain text nodes.</li>
+</ul>
+</div>
+<div class="section" id="other-changes">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Built with Cython 0.29.6.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id2">
+<h1>4.3.1 (2019-02-08)</h1>
+<div class="section" id="id3">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1814522">LP#1814522</a>: Crash when appending a child subtree that contains unsubstituted
+entity references.</li>
+</ul>
+</div>
+<div class="section" id="id4">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Built with Cython 0.29.5.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id5">
+<h1>4.3.0 (2019-01-04)</h1>
+<div class="section" id="features-added">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The module <tt class="docutils literal">lxml.sax</tt> is compiled using Cython in order to speed it up.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/267">GH#267</a>: <tt class="docutils literal">lxml.sax.ElementTreeProducer</tt> now preserves the namespace prefixes.
+If two prefixes point to the same URI, the first prefix in alphabetical order
+is used. Patch by Lennart Regebro.</li>
+<li>Updated ISO-Schematron implementation to 2013 version (now MIT licensed)
+and the corresponding schema to the 2016 version (with optional "properties").</li>
+</ul>
+</div>
+<div class="section" id="id6">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/270">GH#270</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/271">GH#271</a>: Support for Python 2.6 and 3.3 was removed.
+Patch by hugovk.</li>
+<li>The minimum dependency versions were raised to libxml2 2.9.2 and libxslt 1.1.27,
+which were released in 2014 and 2012 respectively.</li>
+<li>Built with Cython 0.29.2.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id7">
+<h1>4.2.6 (2019-01-02)</h1>
+<div class="section" id="id8">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1799755">LP#1799755</a>: Fix a DeprecationWarning in Py3.7+.</li>
+<li>Import warnings in Python 3.6+ were resolved.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id9">
+<h1>4.2.5 (2018-09-09)</h1>
+<div class="section" id="id10">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Javascript URLs that used URL escaping were not removed by the HTML cleaner.
+Security problem found by Omar Eissa. (CVE-2018-19787)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id11">
+<h1>4.2.4 (2018-08-03)</h1>
+<div class="section" id="id12">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/259">GH#259</a>: Allow using <tt class="docutils literal"><span class="pre">pkg-config</span></tt> for build configuration.
+Patch by Patrick Griffis.</li>
+</ul>
+</div>
+<div class="section" id="id13">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1773749">LP#1773749</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/268">GH#268</a>: Crash when moving an element to another document with
+<tt class="docutils literal">Element.insert()</tt>.
+Patch by Alexander Weggerle.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id14">
+<h1>4.2.3 (2018-06-27)</h1>
+<div class="section" id="id15">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Reverted <a class="reference external" href="https://github.com/lxml/lxml/issues/265">GH#265</a>: lxml links against zlib as a shared library again.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id16">
+<h1>4.2.2 (2018-06-22)</h1>
+<div class="section" id="id17">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/266">GH#266</a>: Fix sporadic crash during GC when parse-time schema validation is used
+and the parser participates in a reference cycle.
+Original patch by Julien Greard.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/265">GH#265</a>: lxml no longer links against zlib as a shared library, only on static builds.
+Patch by Nehal J Wani.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id19">
+<h1>4.2.1 (2018-03-21)</h1>
+<div class="section" id="id20">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1755825">LP#1755825</a>: <tt class="docutils literal">iterwalk()</tt> failed to return the 'start' event for the initial
+element if a tag selector is used.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1756314">LP#1756314</a>: Failure to import 4.2.0 into PyPy due to a missing library symbol.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1727864">LP#1727864</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/258">GH#258</a>: Add "-isysroot" linker option on MacOS as needed by XCode 9.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id21">
+<h1>4.2.0 (2018-03-13)</h1>
+<div class="section" id="id22">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/255">GH#255</a>: <tt class="docutils literal">SelectElement.value</tt> returns more standard-compliant and
+browser-like defaults for non-multi-selects. If no option is selected, the
+value of the first option is returned (instead of None). If multiple options
+are selected, the value of the last one is returned (instead of that of the
+first one). If no options are present (not standard-compliant)
+<tt class="docutils literal">SelectElement.value</tt> still returns <tt class="docutils literal">None</tt>.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/261">GH#261</a>: The <tt class="docutils literal">HTMLParser()</tt> now supports the <tt class="docutils literal">huge_tree</tt> option.
+Patch by stranac.</li>
+</ul>
+</div>
+<div class="section" id="id23">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Some XSLT messages were not captured by the transform error log.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1737825">LP#1737825</a>: Crash at shutdown after an interrupted iterparse run with XMLSchema
+validation.</li>
+</ul>
+</div>
+<div class="section" id="id24">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id25">
+<h1>4.1.1 (2017-11-04)</h1>
+<ul class="simple">
+<li>Rebuild with Cython 0.27.3 to improve support for Py3.7.</li>
+</ul>
+</div>
+<div class="section" id="id26">
+<h1>4.1.0 (2017-10-13)</h1>
+<div class="section" id="id27">
+<h2>Features added</h2>
+<ul class="simple">
+<li>ElementPath supports text predicates for current node, like "[.='text']".</li>
+<li>ElementPath allows spaces in predicates.</li>
+<li>Custom Element classes and XPath functions can now be registered with a
+decorator rather than explicit dict assignments.</li>
+<li>Static Linux wheels are now built with link time optimisation (LTO) enabled.
+This should have a beneficial impact on the overall performance by providing
+a tighter compiler integration between lxml and libxml2/libxslt.</li>
+</ul>
+</div>
+<div class="section" id="id28">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1722776">LP#1722776</a>: Requesting non-Element objects like comments from a document with
+<tt class="docutils literal">PythonElementClassLookup</tt> could fail with a TypeError.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id29">
+<h1>4.0.0 (2017-09-17)</h1>
+<div class="section" id="id30">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The ElementPath implementation is now compiled using Cython,
+which speeds up the <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods quite significantly.</li>
+<li>The modules <tt class="docutils literal">lxml.builder</tt>, <tt class="docutils literal">lxml.html.diff</tt> and <tt class="docutils literal">lxml.html.clean</tt>
+are also compiled using Cython in order to speed them up.</li>
+<li><tt class="docutils literal">xmlfile()</tt> supports async coroutines using <tt class="docutils literal">async with</tt> and <tt class="docutils literal">await</tt>.</li>
+<li><tt class="docutils literal">iterwalk()</tt> has a new method <tt class="docutils literal">skip_subtree()</tt> that prevents walking into
+the descendants of the current element.</li>
+<li><tt class="docutils literal">RelaxNG.from_rnc_string()</tt> accepts a <tt class="docutils literal">base_url</tt> argument to
+allow relative resource lookups.</li>
+<li>The XSLT result object has a new method <tt class="docutils literal">.write_output(file)</tt> that serialises
+output data into a file according to the <tt class="docutils literal"><xsl:output></tt> configuration.</li>
+</ul>
+</div>
+<div class="section" id="id31">
+<h2>Bugs fixed</h2>
+<ul>
+<li><p class="first"><a class="reference external" href="https://github.com/lxml/lxml/issues/251">GH#251</a>: HTML comments were handled incorrectly by the soupparser.
+Patch by mozbugbox.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1654544">LP#1654544</a>: The html5parser no longer passes the <tt class="docutils literal">useChardet</tt> option
+if the input is a Unicode string, unless explicitly requested. When parsing
+files, the default is to enable it when a URL or file path is passed (because
+the file is then opened in binary mode), and to disable it when reading from
+a file(-like) object.</p>
+<p>Note: This is a backwards incompatible change of the default configuration.
+If your code parses byte strings/streams and depends on character detection,
+please pass the option <tt class="docutils literal">guess_charset=True</tt> explicitly, which already worked
+in older lxml versions.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1703810">LP#1703810</a>: <tt class="docutils literal">etree.fromstring()</tt> failed to parse UTF-32 data with BOM.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1526522">LP#1526522</a>: Some RelaxNG errors were not reported in the error log.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1567526">LP#1567526</a>: Empty and plain text input raised a TypeError in soupparser.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1710429">LP#1710429</a>: Uninitialised variable usage in HTML diff.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1415643">LP#1415643</a>: The closing tags context manager in <tt class="docutils literal">xmlfile()</tt> could continue
+to output end tags even after writing failed with an exception.</p>
+</li>
+<li><p class="first"><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1465357">LP#1465357</a>: <tt class="docutils literal">xmlfile.write()</tt> now accepts and ignores None as input argument.</p>
+</li>
+<li><p class="first">Compilation under Py3.7-pre failed due to a modified function signature.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="id32">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The main module source files were renamed from <tt class="docutils literal"><span class="pre">lxml.*.pyx</span></tt> to plain
+<tt class="docutils literal">*.pyx</tt> (e.g. <tt class="docutils literal">etree.pyx</tt>) to simplify their handling in the build
+process. Care was taken to keep the old header files as fallbacks for
+code that compiles against the public C-API of lxml, but it might still
+be worth validating that third-party code does not notice this change.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id33">
+<h1>3.8.0 (2017-06-03)</h1>
+<div class="section" id="id34">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">ElementTree.write()</tt> has a new option <tt class="docutils literal">doctype</tt> that writes out a
+doctype string before the serialisation, in the same way as <tt class="docutils literal">tostring()</tt>.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/220">GH#220</a>: <tt class="docutils literal">xmlfile</tt> allows switching output methods at an element level.
+Patch by Burak Arslan.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1595781">LP#1595781</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/240">GH#240</a>: added a PyCapsule Python API and C-level API for
+passing externally generated libxml2 documents into lxml.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/244">GH#244</a>: error log entries have a new property <tt class="docutils literal">path</tt> with an XPath
+expression (if known, None otherwise) that points to the tree element
+responsible for the error. Patch by Bob Kline.</li>
+<li>The namespace prefix mapping that can be used in ElementPath now injects
+a default namespace when passing a None prefix.</li>
+</ul>
+</div>
+<div class="section" id="id35">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/238">GH#238</a>: Character escapes were not hex-encoded in the <tt class="docutils literal">xmlfile</tt> serialiser.
+Patch by matejcik.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/229">GH#229</a>: fix for externally created XML documents. Patch by Theodore Dubois.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1665241">LP#1665241</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/228">GH#228</a>: Form data handling in lxml.html no longer strips the
+option values specified in form attributes but only the text values.
+Patch by Ashish Kulkarni.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: revert previous fix for XSLT error logging as it breaks
+multi-threaded XSLT processing.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1673355">LP#1673355</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/233">GH#233</a>: <tt class="docutils literal">fromstring()</tt> html5parser failed to parse byte strings.</li>
+</ul>
+</div>
+<div class="section" id="id37">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The previously undocumented <tt class="docutils literal">docstring</tt> option in <tt class="docutils literal">ElementTree.write()</tt>
+produces a deprecation warning and will eventually be removed.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id38">
+<h1>3.7.4 (2017-??-??)</h1>
+<div class="section" id="id39">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: revert previous fix for XSLT error logging as it breaks
+multi-threaded XSLT processing.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1673355">LP#1673355</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/233">GH#233</a>: <tt class="docutils literal">fromstring()</tt> html5parser failed to parse byte strings.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id43">
+<h1>3.7.3 (2017-02-18)</h1>
+<div class="section" id="id44">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/218">GH#218</a> was ineffective in Python 3.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/222">GH#222</a>: <tt class="docutils literal">lxml.html.submit_form()</tt> failed in Python 3.
+Patch by Jakub Wilk.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id45">
+<h1>3.7.2 (2017-01-08)</h1>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/220">GH#220</a>: <tt class="docutils literal">xmlfile</tt> allows switching output methods at an element level.
+Patch by Burak Arslan.</li>
+</ul>
+<div class="section" id="id47">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Work around installation problems in recent Python 2.7 versions
+due to FTP download failures.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/219">GH#219</a>: <tt class="docutils literal">xmlfile.element()</tt> was not properly quoting attribute values.
+Patch by Burak Arslan.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/218">GH#218</a>: <tt class="docutils literal">xmlfile.element()</tt> was not properly escaping text content of
+script/style tags. Patch by Burak Arslan.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id49">
+<h1>3.7.1 (2016-12-23)</h1>
+<ul class="simple">
+<li>No source changes, issued only to solve problems with the
+binary packages released for 3.7.0.</li>
+</ul>
+</div>
+<div class="section" id="id50">
+<h1>3.7.0 (2016-12-10)</h1>
+<div class="section" id="id51">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/217">GH#217</a>: <tt class="docutils literal">XMLSyntaxError</tt> now behaves more like its <tt class="docutils literal">SyntaxError</tt>
+baseclass. Patch by Philipp A.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/216">GH#216</a>: <tt class="docutils literal">HTMLParser()</tt> now supports the same <tt class="docutils literal">collect_ids</tt> parameter
+as <tt class="docutils literal">XMLParser()</tt>. Patch by Burak Arslan.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/210">GH#210</a>: Allow specifying a serialisation method in <tt class="docutils literal">xmlfile.write()</tt>.
+Patch by Burak Arslan.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/203">GH#203</a>: New option <tt class="docutils literal">default_doctype</tt> in <tt class="docutils literal">HTMLParser</tt> that allows
+disabling the automatic doctype creation. Patch by Shadab Zafar.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/201">GH#201</a>: Calling the method <tt class="docutils literal"><span class="pre">.set('attrname')</span></tt> without value argument
+(or <tt class="docutils literal">None</tt>) on HTML elements creates an attribute without value that
+serialises like <tt class="docutils literal"><div <span class="pre">attrname></div></span></tt>. Patch by Daniel Holth.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/197">GH#197</a>: Ignore form input fields in <tt class="docutils literal">form_values()</tt> when they are
+marked as <tt class="docutils literal">disabled</tt> in HTML. Patch by Kristian Klemon.</li>
+</ul>
+</div>
+<div class="section" id="id52">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/206">GH#206</a>: File name and line number were missing from XSLT error messages.
+Patch by Marcus Brinkmann.</li>
+</ul>
+</div>
+<div class="section" id="id53">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Log entries no longer allow anything but plain string objects as message text
+and file name.</li>
+<li><tt class="docutils literal">zlib</tt> is included in the list of statically built libraries.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id54">
+<h1>3.6.4 (2016-08-20)</h1>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/204">GH#204</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614693">LP#1614693</a>: build fix for MacOS-X.</li>
+</ul>
+</div>
+<div class="section" id="id55">
+<h1>3.6.3 (2016-08-18)</h1>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: change linker flags to build multi-linux wheels</li>
+</ul>
+</div>
+<div class="section" id="id56">
+<h1>3.6.2 (2016-08-18)</h1>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1614603">LP#1614603</a>: release without source changes to provide cleanly built Linux wheels</li>
+</ul>
+</div>
+<div class="section" id="id58">
+<h1>3.6.1 (2016-07-24)</h1>
+<div class="section" id="id59">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/180">GH#180</a>: Separate option <tt class="docutils literal">inline_style</tt> for Cleaner that only removes <tt class="docutils literal">style</tt>
+attributes instead of all styles. Patch by Christian Pedersen.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/196">GH#196</a>: Windows build support for Python 3.5. Contribution by Maximilian Hils.</li>
+</ul>
+</div>
+<div class="section" id="id60">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/199">GH#199</a>: Exclude <tt class="docutils literal">file</tt> fields from <tt class="docutils literal">FormElement.form_values</tt> (as browsers do).
+Patch by Tomas Divis.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/198">GH#198</a>, <a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1568167">LP#1568167</a>: Try to provide base URL from <tt class="docutils literal">Resolver.resolve_string()</tt>.
+Patch by Michael van Tellingen.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/191">GH#191</a>: More accurate float serialisation in <tt class="docutils literal">objectify.FloatElement</tt>.
+Patch by Holger Joukl.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1551797">LP#1551797</a>: Repair XSLT error logging. Patch by Marcus Brinkmann.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id62">
+<h1>3.6.0 (2016-03-17)</h1>
+<div class="section" id="id63">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/187">GH#187</a>: Now supports (only) version 5.x and later of PyPy.
+Patch by Armin Rigo.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/181">GH#181</a>: Direct support for <tt class="docutils literal">.rnc</tt> files in <cite>RelaxNG()</cite> if <tt class="docutils literal">rnc2rng</tt>
+is installed. Patch by Dirkjan Ochtman.</li>
+</ul>
+</div>
+<div class="section" id="id64">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/189">GH#189</a>: Static builds honour FTP proxy configurations when downloading
+the external libs. Patch by Youhei Sakurai.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/186">GH#186</a>: Soupparser failed to process entities in Python 3.x.
+Patch by Duncan Morris.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/185">GH#185</a>: Rare encoding related <tt class="docutils literal">TypeError</tt> on import was fixed.
+Patch by Petr Demin.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id65">
+<h1>3.5.0 (2015-11-13)</h1>
+<div class="section" id="id66">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Unicode string results failed XPath queries in PyPy.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1497051">LP#1497051</a>: HTML target parser failed to terminate on exceptions
+and continued parsing instead.</li>
+<li>Deprecated API usage in doctestcompare.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="b1-2015-09-18">
+<h1>3.5.0b1 (2015-09-18)</h1>
+<div class="section" id="id67">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">keep_ns_prefixes</tt>
+that does not remove definitions of the provided prefix-namespace
+mapping from the tree.</li>
+<li><tt class="docutils literal">cleanup_namespaces()</tt> accepts a new argument <tt class="docutils literal">top_nsmap</tt> that
+moves definitions of the provided prefix-namespace mapping to the
+top of the tree.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1490451">LP#1490451</a>: <tt class="docutils literal">Element</tt> objects gained a <tt class="docutils literal">cssselect()</tt> method as
+known from <tt class="docutils literal">lxml.html</tt>. Patch by Simon Sapin.</li>
+<li>API functions and methods behave and look more like Python functions,
+which allows introspection on them etc. One side effect to be aware of
+is that the functions now bind as methods when assigned to a class
+variable. A quick fix is to wrap them in <tt class="docutils literal">staticmethod()</tt> (as for
+normal Python functions).</li>
+<li>ISO-Schematron support gained an option <tt class="docutils literal">error_finder</tt> that allows
+passing a filter function for picking validation errors from reports.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1243600">LP#1243600</a>: Elements in <tt class="docutils literal">lxml.html</tt> gained a <tt class="docutils literal">classes</tt> property
+that provides a set-like interface to the <tt class="docutils literal">class</tt> attribute.
+Original patch by masklinn.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1341964">LP#1341964</a>: The soupparser now handles DOCTYPE declarations, comments
+and processing instructions outside of the root element.
+Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421512">LP#1421512</a>: The <tt class="docutils literal">docinfo</tt> of a tree was made editable to allow
+setting and removing the public ID and system ID of the DOCTYPE.
+Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1442427">LP#1442427</a>: More work-arounds for quirks and bugs in pypy and pypy3.</li>
+<li><tt class="docutils literal">lxml.html.soupparser</tt> now uses BeautifulSoup version 4 instead
+of version 3 if available.</li>
+</ul>
+</div>
+<div class="section" id="id68">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory errors that occur during tree adaptations (e.g. moving subtrees
+to foreign documents) could leave the tree in a crash prone state.</li>
+<li>Calling <tt class="docutils literal">process_children()</tt> in an XSLT extension element without
+an <tt class="docutils literal">output_parent</tt> argument failed with a <tt class="docutils literal">TypeError</tt>.
+Fix by Jens Tröger.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/162">GH#162</a>: Image data in HTML <tt class="docutils literal">data</tt> URLs is considered safe and
+no longer removed by <tt class="docutils literal">lxml.html.clean</tt> JavaScript cleaner.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/166">GH#166</a>: Static build could link libraries in wrong order.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/172">GH#172</a>: Rely a bit more on libxml2 for encoding detection rather than
+rolling our own in some cases. Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/159">GH#159</a>: Validity checks for names and string content were tightened
+to detect the use of illegal characters early. Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421921">LP#1421921</a>: Comments/PIs before the DOCTYPE declaration were not
+serialised. Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/659367">LP#659367</a>: Some HTML DOCTYPE declarations were not serialised.
+Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238503">LP#1238503</a>: lxml.doctestcompare is now consistent with stdlib's doctest
+in how it uses <tt class="docutils literal">+</tt> and <tt class="docutils literal">-</tt> to refer to unexpected and missing output.</li>
+<li>Empty prefixes are explicitly rejected when a namespace mapping is used
+with ElementPath to avoid hiding bugs in user code.</li>
+<li>Several problems with PyPy were fixed by switching to Cython 0.23.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id69">
+<h1>3.4.4 (2015-04-25)</h1>
+<div class="section" id="id70">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>An ElementTree compatibility test added in lxml 3.4.3 that failed in
+Python 3.4+ was removed again.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id71">
+<h1>3.4.3 (2015-04-15)</h1>
+<div class="section" id="id72">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Expression cache in ElementPath was ignored. Fix by Changaco.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1426868">LP#1426868</a>: Passing a default namespace and a prefixed namespace mapping
+as nsmap into <tt class="docutils literal">xmlfile.element()</tt> raised a <tt class="docutils literal">TypeError</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1421927">LP#1421927</a>: DOCTYPE system URLs were incorrectly quoted when containing
+double quotes. Patch by Olli Pottonen.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1419354">LP#1419354</a>: meta-redirect URLs were incorrectly processed by
+<tt class="docutils literal">iterlinks()</tt> if preceded by whitespace.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id73">
+<h1>3.4.2 (2015-02-07)</h1>
+<div class="section" id="id74">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1415907">LP#1415907</a>: Crash when creating an XMLSchema from a non-root element
+of an XML document.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1369362">LP#1369362</a>: HTML cleaning failed when hitting processing instructions
+with pseudo-attributes.</li>
+<li><tt class="docutils literal">CDATA()</tt> wrapped content was rejected for tail text.</li>
+<li>CDATA sections were not serialised as tail text of the top-level element.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id75">
+<h1>3.4.1 (2014-11-20)</h1>
+<div class="section" id="id76">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New <tt class="docutils literal">htmlfile</tt> HTML generator to accompany the incremental <tt class="docutils literal">xmlfile</tt>
+serialisation API. Patch by Burak Arslan.</li>
+</ul>
+</div>
+<div class="section" id="id77">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.sax.ElementTreeContentHandler</tt> did not initialise its superclass.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id78">
+<h1>3.4.0 (2014-09-10)</h1>
+<div class="section" id="id79">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">xmlfile(buffered=False)</tt> disables output buffering and flushes the
+content after each API operation (starting/ending element blocks or writes).
+A new method <tt class="docutils literal">xf.flush()</tt> can alternatively be used to explicitly flush
+the output.</li>
+<li><tt class="docutils literal">lxml.html.document_fromstring</tt> has a new option <tt class="docutils literal">ensure_head_body=True</tt>
+which will add an empty head and/or body element to the result document if
+missing.</li>
+<li><tt class="docutils literal">lxml.html.iterlinks</tt> now returns links inside meta refresh tags.</li>
+<li>New <tt class="docutils literal">XMLParser</tt> option <tt class="docutils literal">collect_ids=False</tt> to disable ID hash table
+creation. This can substantially speed up parsing of documents with many
+different IDs that are not used.</li>
+<li>The parser uses per-document hash tables for XML IDs. This reduces the
+load of the global parser dict and speeds up parsing for documents with
+many different IDs.</li>
+<li><tt class="docutils literal">ElementTree.getelementpath(element)</tt> returns a structural ElementPath
+expression for the given element, which can be used for lookups later.</li>
+<li><tt class="docutils literal">xmlfile()</tt> accepts a new argument <tt class="docutils literal">close=True</tt> to close file(-like)
+objects after writing to them. Before, <tt class="docutils literal">xmlfile()</tt> only closed the file
+if it had opened it internally.</li>
+<li>Allow "bytearray" type for ASCII text input.</li>
+</ul>
+</div>
+<div class="section" id="id80">
+<h2>Bugs fixed</h2>
+</div>
+<div class="section" id="id81">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/400588">LP#400588</a>: decoding errors have become hard errors even in recovery mode.
+Previously, they could lead to an internal tree representation in a mixed
+encoding state, which lead to very late errors or even silently incorrect
+behaviour during tree traversal or serialisation.</li>
+<li>Requires Python 2.6, 2.7, 3.2 or later. No longer supports
+Python 2.4, 2.5 and 3.1, use lxml 3.3.x for those.</li>
+<li>Requires libxml2 2.7.0 or later and libxslt 1.1.23 or later,
+use lxml 3.3.x with older versions.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id82">
+<h1>3.3.6 (2014-08-28)</h1>
+<div class="section" id="id83">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Prevent tree cycle creation when adding Elements as siblings.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1361948">LP#1361948</a>: crash when deallocating Element siblings without parent.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1354652">LP#1354652</a>: crash when traversing internally loaded documents in XSLT
+extension functions.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id84">
+<h1>3.3.5 (2014-04-18)</h1>
+<div class="section" id="id85">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>HTML cleaning could fail to strip javascript links that mix control
+characters into the link scheme.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id86">
+<h1>3.3.4 (2014-04-03)</h1>
+<div class="section" id="id87">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Source line numbers above 65535 are available on Elements when
+using libxml2 2.9 or later.</li>
+</ul>
+</div>
+<div class="section" id="id88">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.fragment_fromstring()</tt> failed for bytes input in Py3.</li>
+</ul>
+</div>
+<div class="section" id="id89">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id90">
+<h1>3.3.3 (2014-03-04)</h1>
+<div class="section" id="id91">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1287118">LP#1287118</a>: Crash when using Element subtypes with <tt class="docutils literal">__slots__</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id92">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The internal classes <tt class="docutils literal">_LogEntry</tt> and <tt class="docutils literal">_Attrib</tt> can no longer be
+subclassed from Python code.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id93">
+<h1>3.3.2 (2014-02-26)</h1>
+<div class="section" id="id94">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The properties <tt class="docutils literal">resolvers</tt> and <tt class="docutils literal">version</tt>, as well as the methods
+<tt class="docutils literal">set_element_class_lookup()</tt> and <tt class="docutils literal">makeelement()</tt>, were lost from
+<tt class="docutils literal">iterparse</tt> objects in 3.3.0.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1222132">LP#1222132</a>: instances of <tt class="docutils literal">XMLSchema</tt>, <tt class="docutils literal">Schematron</tt> and <tt class="docutils literal">RelaxNG</tt>
+did not clear their local <tt class="docutils literal">error_log</tt> before running a validation.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1238500">LP#1238500</a>: lxml.doctestcompare mixed up "expected" and "actual" in
+attribute values.</li>
+<li>Some file I/O tests were failing in MS-Windows due to non-portable temp
+file usage. Initial patch by Gabi Davar.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/910014">LP#910014</a>: duplicate IDs in a document were not reported by DTD validation.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185332">LP#1185332</a>: <tt class="docutils literal"><span class="pre">tostring(method="html")</span></tt> did not use HTML serialisation
+semantics for trailing tail text. Initial patch by Sylvain Viollon.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1281139">LP#1281139</a>: <tt class="docutils literal">.attrib</tt> value of Comments lost its mutation methods
+in 3.3.0. Even though it is empty and immutable, it should still
+provide the same interface as that returned for Elements.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id95">
+<h1>3.3.1 (2014-02-12)</h1>
+<div class="section" id="id96">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id97">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1014290">LP#1014290</a>: HTML documents parsed with <tt class="docutils literal">parser.feed()</tt> failed to find
+elements during tag iteration.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1273709">LP#1273709</a>: Building in PyPy failed due to missing support for
+<tt class="docutils literal">PyUnicode_Compare()</tt> and <tt class="docutils literal"><span class="pre">PyByteArray_*()</span></tt> in PyPy's C-API.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274413">LP#1274413</a>: Compilation in MSVC failed due to missing "stdint.h" standard
+header file.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1274118">LP#1274118</a>: iterparse() failed to parse BOM prefixed files.</li>
+</ul>
+</div>
+<div class="section" id="id98">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id99">
+<h1>3.3.0 (2014-01-26)</h1>
+<div class="section" id="id100">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id101">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The heuristic that distinguishes file paths from URLs was tightened
+to produce less false negatives.</li>
+</ul>
+</div>
+<div class="section" id="id102">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta5-2014-01-18">
+<h1>3.3.0beta5 (2014-01-18)</h1>
+<div class="section" id="id103">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The PEP 393 unicode parsing support gained a fallback for wchar strings
+which might still be somewhat common on Windows systems.</li>
+</ul>
+</div>
+<div class="section" id="id104">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Several error handling problems were fixed throughout the code base that
+could previously lead to exceptions being silently swallowed or not
+properly reported.</li>
+<li>The C-API function <tt class="docutils literal">appendChild()</tt> is now deprecated as it does not
+propagate exceptions (its return type is <tt class="docutils literal">void</tt>). The new function
+<tt class="docutils literal">appendChildToElement()</tt> was added as a safe replacement.</li>
+<li>Passing a string into <tt class="docutils literal">fromstringlist()</tt> raises an exception instead of
+parsing the string character by character.</li>
+</ul>
+</div>
+<div class="section" id="id105">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Document cleanup code was simplified using the new GC features in
+Cython 0.20.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta4-2014-01-12">
+<h1>3.3.0beta4 (2014-01-12)</h1>
+<div class="section" id="id106">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id107">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The (empty) value returned by the <tt class="docutils literal">attrib</tt> property of Entity and Comment
+objects was mutable.</li>
+<li>Element class lookup wasn't available for the new pull parsers or when using
+a custom parser target.</li>
+<li>Setting Element attributes on instantiation with both the <tt class="docutils literal">attrib</tt> argument
+and keyword arguments could modify the mapping passed as <tt class="docutils literal">attrib</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1266171">LP#1266171</a>: DTDs instantiated from internal/external subsets (i.e. through
+the docinfo property) lost their attribute declarations.</li>
+</ul>
+</div>
+<div class="section" id="id108">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Built with Cython 0.20pre (gitrev 012ae82eb) to prepare support for
+Python 3.4.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta3-2014-01-02">
+<h1>3.3.0beta3 (2014-01-02)</h1>
+<div class="section" id="id109">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Unicode string parsing was optimised for Python 3.3 (PEP 393).</li>
+</ul>
+</div>
+<div class="section" id="id110">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>HTML parsing of Unicode strings could misdecode the input on some platforms.</li>
+<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
+</ul>
+</div>
+<div class="section" id="id111">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta2-2013-12-20">
+<h1>3.3.0beta2 (2013-12-20)</h1>
+<div class="section" id="id112">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">iterparse()</tt> supports the <tt class="docutils literal">recover</tt> option.</li>
+</ul>
+</div>
+<div class="section" id="id113">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in <tt class="docutils literal">iterparse()</tt> for HTML parsing.</li>
+<li>Crash in target parsing with attributes.</li>
+</ul>
+</div>
+<div class="section" id="id114">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The safety check in the read-only tree implementation (e.g. used by
+<tt class="docutils literal">PythonElementClassLookup</tt>) raises a more appropriate <tt class="docutils literal">ReferenceError</tt>
+for illegal access after tree disposal instead of an <tt class="docutils literal">AssertionError</tt>.
+This should only impact test code that specifically checks the original
+behaviour.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2013-12-12">
+<h1>3.3.0beta1 (2013-12-12)</h1>
+<div class="section" id="id115">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New option <tt class="docutils literal">handle_failures</tt> in <tt class="docutils literal">make_links_absolute()</tt> and
+<tt class="docutils literal">resolve_base_href()</tt> (lxml.html) that enables ignoring or
+discarding links that fail to parse as URLs.</li>
+<li>New parser classes <tt class="docutils literal">XMLPullParser</tt> and <tt class="docutils literal">HTMLPullParser</tt> for
+incremental parsing, as implemented for ElementTree in Python 3.4.</li>
+<li><tt class="docutils literal">iterparse()</tt> enables recovery mode by default for HTML parsing
+(<tt class="docutils literal">html=True</tt>).</li>
+</ul>
+</div>
+<div class="section" id="id116">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1255132">LP#1255132</a>: crash when trying to run validation over non-Element (e.g.
+comment or PI).</li>
+<li>Error messages in the log and in exception messages that originated
+from libxml2 could accidentally be picked up from preceding warnings
+instead of the actual error.</li>
+<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify did not accept a dict as
+argument for adding attributes to the element it's building. This
+works as in lxml.builder now.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
+<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
+to one of its own descendants, instead of running into an infinite
+loop.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
+<li>Compressed plain-text serialisation to file-like objects was broken.</li>
+<li>lxml.html.formfill: Fix textarea form filling.
+The textarea used to be cleared before the new content was set,
+which removed the name attribute.</li>
+</ul>
+</div>
+<div class="section" id="id117">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Some basic API classes use freelists internally for faster
+instantiation. This can speed up some <tt class="docutils literal">iterparse()</tt> scenarios,
+for example.</li>
+<li><tt class="docutils literal">iterparse()</tt> was rewritten to use the new <tt class="docutils literal">*PullParser</tt>
+classes internally instead of being a parser itself.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id118">
+<h1>3.2.5 (2014-01-02)</h1>
+<div class="section" id="id119">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id120">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in xmlfile() when closing open elements out of order in an error case.</li>
+<li>Crash in target parsing with attributes.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1255132">LP#1255132</a>: crash when trying to run validation over non-Element (e.g.
+comment or PI).</li>
+</ul>
+</div>
+<div class="section" id="id122">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id123">
+<h1>3.2.4 (2013-11-07)</h1>
+<div class="section" id="id124">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id125">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak when creating an XPath evaluator in a thread.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
+<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
+to one of its own descendants.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
+<li>Compressed plain-text serialisation to file-like objects was broken.</li>
+</ul>
+</div>
+<div class="section" id="id128">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id129">
+<h1>3.2.3 (2013-07-28)</h1>
+<div class="section" id="id130">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix support for Python 2.4 which was lost in 3.2.2.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id131">
+<h1>3.2.2 (2013-07-28)</h1>
+<div class="section" id="id132">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id133">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185701">LP#1185701</a>: spurious XMLSyntaxError after finishing iterparse().</li>
+<li>Crash in lxml.objectify during xsi annotation.</li>
+</ul>
+</div>
+<div class="section" id="id134">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Return values of user provided element class lookup methods are now
+validated against the type of the XML node they represent to prevent
+API class mismatches.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id135">
+<h1>3.2.1 (2013-05-11)</h1>
+<div class="section" id="id136">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
+extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
+and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
+strings from the result list.</li>
+</ul>
+</div>
+<div class="section" id="id137">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When moving Elements to another tree, the namespace cleanup mechanism
+no longer drops namespace prefixes from attributes for which it finds
+a default namespace declaration, to prevent them from appearing as
+unnamespaced attributes after serialisation.</li>
+<li>Returning non-type objects from a custom class lookup method could lead
+to a crash.</li>
+<li>Instantiating and using subtypes of Comments and ProcessingInstructions
+crashed.</li>
+</ul>
+</div>
+<div class="section" id="id138">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id139">
+<h1>3.2.0 (2013-04-28)</h1>
+<div class="section" id="id140">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id141">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/690319">LP#690319</a>: Leading whitespace could change the behaviour of the string
+parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
+in the face of uncommon HTML content like framesets or missing body tags.
+Patch by Stefan Seelmann.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
+non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
+reporting the <tt class="docutils literal">IOError</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
+default parser and made subsequent attempts to parse from a URL fail.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
+of overwriting the current value.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
+allowed by the user provided whitelist. Patch by Christine Koppelt.</li>
+</ul>
+</div>
+<div class="section" id="id142">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id143">
+<h1>3.1.2 (2013-04-12)</h1>
+<div class="section" id="id144">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id145">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1136509">LP#1136509</a>: Passing attributes through the namespace-unaware API of
+the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
+with a <tt class="docutils literal">TypeError</tt>. Patch by Mike Bayer.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
+the result tree to a Unicode string.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
+by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id146">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id147">
+<h1>3.1.1 (2013-03-29)</h1>
+<div class="section" id="id148">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id149">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1160386">LP#1160386</a>: Write access to <tt class="docutils literal">lxml.html.FormElement.fields</tt> raised
+an AttributeError in Py3.</li>
+<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
+</ul>
+</div>
+<div class="section" id="id150">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
+from the module dict.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id151">
+<h1>3.1.0 (2013-02-10)</h1>
+<div class="section" id="id152">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/89">GH#89</a>: lxml.html.clean allows overriding the set of attributes that it
+considers 'safe'. Patch by Francis Devereux.</li>
+</ul>
+</div>
+<div class="section" id="id153">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1104370">LP#1104370</a>: <tt class="docutils literal">copy.copy(el.attrib)</tt> raised an exception. It now returns
+a copy of the attributes as a plain Python dict.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
+always used the first namespace mapping that was provided for each
+path expression instead of using the one that was actually passed
+in for the current run.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
+without threading support. Patch by Ulrich Seidl.</li>
+</ul>
+</div>
+<div class="section" id="id154">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta1-2012-12-21">
+<h1>3.1beta1 (2012-12-21)</h1>
+<div class="section" id="id155">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New build-time option <tt class="docutils literal"><span class="pre">--with-unicode-strings</span></tt> for Python 2 that
+makes the API always return Unicode strings for names and text
+instead of byte strings for plain ASCII content.</li>
+<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
+<li>E factory in lxml.objectify is callable to simplify the creation of
+tags with non-identifier names without having to resort to getattr().</li>
+</ul>
+</div>
+<div class="section" id="id156">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When starting from a non-namespaced element in lxml.objectify, searching
+for a child without explicitly specifying a namespace incorrectly found
+namespaced elements with the requested local name, instead of restricting
+the search to non-namespaced children.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1080792">LP#1080792</a>: Static build of libxml2 2.9.0 failed due to missing file.</li>
+</ul>
+</div>
+<div class="section" id="id157">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
+removed from the module API of lxml.objectify.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
+many children. Patch by Anders Hammarquist.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id158">
+<h1>3.0.2 (2012-12-14)</h1>
+<div class="section" id="id159">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id160">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
+</ul>
+</div>
+<div class="section" id="id161">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id162">
+<h1>3.0.1 (2012-10-14)</h1>
+<div class="section" id="id163">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id164">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065924">LP#1065924</a>: Element proxies could disappear during garbage collection
+in PyPy without proper cleanup.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065139">LP#1065139</a>: static MacOS-X build failed in Py3.</li>
+</ul>
+</div>
+<div class="section" id="id165">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id166">
+<h1>3.0 (2012-10-08)</h1>
+<div class="section" id="id167">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id168">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>End-of-file handling was incorrect in iterparse() when reading from
+a low-level C file stream and failed in libxml2 2.9.0 due to its
+improved consistency checks.</li>
+</ul>
+</div>
+<div class="section" id="id169">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The build no longer uses Cython by default unless the generated C files
+are missing. To use Cython, pass the option "--with-cython". To ignore
+the fatal build error when Cython is required but not available (e.g. to
+run special setup.py commands that do not actually run a build), pass
+"--without-cython".</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2012-09-26">
+<h1>3.0beta1 (2012-09-26)</h1>
+<div class="section" id="id170">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Python level access to (optional) libxml2 memory debugging features
+to simplify debugging of memory leaks etc.</li>
+</ul>
+</div>
+<div class="section" id="id171">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix a memory leak in XPath by switching to Cython 0.17.1.</li>
+<li>Some tests were adapted to work with PyPy.</li>
+</ul>
+</div>
+<div class="section" id="id172">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha2-2012-08-23">
+<h1>3.0alpha2 (2012-08-23)</h1>
+<div class="section" id="id173">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">.iter()</tt> method of elements now accepts <tt class="docutils literal">tag</tt> arguments like
+<tt class="docutils literal"><span class="pre">"{*}name"</span></tt> to search for elements with a given local name in any
+namespace. With this addition, all combinations of wildcards now work
+as expected:
+<tt class="docutils literal">"{ns}name"</tt>, <tt class="docutils literal"><span class="pre">"{}name"</span></tt>, <tt class="docutils literal"><span class="pre">"{*}name"</span></tt>, <tt class="docutils literal"><span class="pre">"{ns}*"</span></tt>, <tt class="docutils literal"><span class="pre">"{}*"</span></tt>
+and <tt class="docutils literal"><span class="pre">"{*}*"</span></tt>. Note that <tt class="docutils literal">"name"</tt> is equivalent to <tt class="docutils literal"><span class="pre">"{}name"</span></tt>,
+but <tt class="docutils literal">"*"</tt> is <tt class="docutils literal"><span class="pre">"{*}*"</span></tt>.
+The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
+<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
+and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
+<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
+<tt class="docutils literal">iterparse()</tt> class. Patch by Simon Sapin.</li>
+<li>C14N allows specifying the inclusive prefixes to be promoted
+to top-level during exclusive serialisation.</li>
+</ul>
+</div>
+<div class="section" id="id174">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
+failed to read the entire string.</li>
+</ul>
+</div>
+<div class="section" id="id175">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha1-2012-07-31">
+<h1>3.0alpha1 (2012-07-31)</h1>
+<div class="section" id="id176">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Initial support for building in PyPy (through cpyext).</li>
+<li>DTD objects gained an API that allows read access to their
+declarations.</li>
+<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
+from grep output) and for surrounding the output with a new root
+tag.</li>
+<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
+types (such as string subtypes) when building elements around them.</li>
+<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
+argument supports passing a set of tags. Tree nodes will be
+returned by the iterators if they match any of the tags.</li>
+</ul>
+</div>
+<div class="section" id="id177">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods in <tt class="docutils literal">lxml.objectify</tt> no longer use XPath
+internally, which makes them faster in many cases (especially when
+short circuiting after a single or couple of elements) and fixes
+some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>. Note that
+this means that they no longer support arbitrary XPath expressions
+but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
+The previous implementation was also redundant with the normal
+XPath support, which can be used as a replacement.</li>
+<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
+instruction that happened to be in the wrong spot. (Same for the
+other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
+<li>The error logging is less intrusive and avoids a global setup where
+possible.</li>
+<li>Fixed undefined names in html5lib parser.</li>
+<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
+<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
+another Element as parameter.</li>
+<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
+properties immutable (as in objectify, for example), inserting text
+when creating Elements through the E-Factory feature of the class
+constructor would fail with an exception, stating that the text
+cannot be modified.</li>
+</ul>
+</div>
+<div class="section" id="id178">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The code base was overhauled to properly use 'const' where the API
+of libxml2 and libxslt requests it. This also has an impact on the
+public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
+well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
+Code that uses these declarations may have to be adapted. On the
+plus side, this fixes several C compiler warnings, also for user
+code, thus making it easier to spot real problems again.</li>
+<li>The functionality of "lxml.cssselect" was moved into a separate PyPI
+package called "cssselect". To continue using it, you must install
+that package separately. The "lxml.cssselect" module is still
+available and provides the same interface, provided the "cssselect"
+package can be imported at runtime.</li>
+<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
+arguments are now sorted by (namespaced) name before being created
+to make their order predictable for serialisation and iteration.
+Note that adding or deleting attributes afterwards does not take
+that order into account, i.e. setting a new attribute appends it
+after the existing ones.</li>
+<li>Several classes that are for internal use only were removed
+from the <tt class="docutils literal">lxml.etree</tt> module dict:
+<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
+_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
+__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
+_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
+_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
+_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
+_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
+_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
+_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
+_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
+_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
+_ParserSchemaValidationContext, _XPathContext,
+_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
+<li>Several internal classes can no longer be inherited from:
+<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
+_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
+_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
+_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
+_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
+_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
+_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
+_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
+_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id179">
+<h1>2.3.6 (2012-09-28)</h1>
+<div class="section" id="id180">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id181">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
+failed to read the entire string.</li>
+</ul>
+</div>
+<div class="section" id="id182">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id183">
+<h1>2.3.5 (2012-07-31)</h1>
+<div class="section" id="id184">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id185">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when merging text nodes in <tt class="docutils literal">element.remove()</tt>.</li>
+<li>Crash in sax/target parser when reporting empty doctype.</li>
+</ul>
+</div>
+<div class="section" id="id186">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id187">
+<h1>2.3.4 (2012-03-26)</h1>
+<div class="section" id="id188">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id189">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when building an nsmap (Element property) with empty
+namespace URIs.</li>
+<li>Crash due to race condition when errors (or user messages) occur
+during threaded XSLT processing.</li>
+<li>XSLT stylesheet compilation could ignore compilation errors.</li>
+</ul>
+</div>
+<div class="section" id="id190">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id191">
+<h1>2.3.3 (2012-01-04)</h1>
+<div class="section" id="id192">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.tostring()</tt> gained new serialisation options
+<tt class="docutils literal">with_tail</tt> and <tt class="docutils literal">doctype</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id193">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
+requesting start events.</li>
+<li>Fixed parsing of more selectors in cssselect. Whitespace before
+pseudo-elements and pseudo-classes is significant as it is a
+descendant combinator.
+"E :pseudo" should parse the same as "E *:pseudo", not "E:pseudo".
+Patch by Simon Sapin.</li>
+<li>lxml.html.diff no longer raises an exception when hitting
+'img' tags without 'src' attribute.</li>
+</ul>
+</div>
+<div class="section" id="id194">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id195">
+<h1>2.3.2 (2011-11-11)</h1>
+<div class="section" id="id196">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
+<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
+declarations (and generally clean up the namespace declarations)
+after removing the type annotations.</li>
+<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
+copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
+of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
+</ul>
+</div>
+<div class="section" id="id197">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed the "descendant" bug in cssselect a second time (after a first
+fix in lxml 2.3.1). The previous change resulted in a serious
+performance regression for the XPath based evaluation of the
+translated expression. Note that this breaks the usage of some of
+the generated XPath expressions as XSLT location paths that
+previously worked in 2.3.1.</li>
+<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
+">", "+" and "~" is now correctly ignored. Previously it was parsed as
+a descendant combinator. For example, "div> .foo" was parsed the same as
+"div>* .foo" instead of "div>.foo". Patch by Simon Sapin.</li>
+</ul>
+</div>
+<div class="section" id="id198">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id199">
+<h1>2.3.1 (2011-09-25)</h1>
+<div class="section" id="id200">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New option <tt class="docutils literal">kill_tags</tt> in <tt class="docutils literal">lxml.html.clean</tt> to remove specific
+tags and their content (i.e. their whole subtree).</li>
+<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
+pseudo-attributes from the text content of processing instructions.</li>
+<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
+used to compile external C code against lxml.etree. This is
+specifically required for statically linked lxml builds when code
+needs to compile against the exact same header file versions as lxml
+itself.</li>
+<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
+<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
+closed after reading or not. By default, the file will be closed,
+as the user is not expected to keep a reference to it.</li>
+</ul>
+</div>
+<div class="section" id="id201">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>HTML cleaning didn't remove 'data:' links.</li>
+<li>The html5lib parser integration now uses the 'official'
+implementation in html5lib itself, which makes it work with newer
+releases of the library.</li>
+<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
+tag name when the corresponding start event inferred the same plain
+tag name to be in the default namespace.</li>
+<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
+<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use. This
+reverts a change in lxml 2.3 where all files would be closed. It is
+the users responsibility to properly close the file(-like) object,
+also in error cases.</li>
+<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
+<li>In lxml.cssselect, use the xpath 'A//B' (short for
+'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
+the css descendant selector ('A B'). This makes a few edge cases
+like <tt class="docutils literal">"div <span class="pre">*:last-child"</span></tt> consistent with the selector behavior in
+WebKit and Firefox, and makes more css expressions valid location
+paths (for use in xsl:template match).</li>
+<li>In lxml.html, non-selected <tt class="docutils literal"><option></tt> tags no longer show up in the
+collected form values.</li>
+<li>Adding/removing <tt class="docutils literal"><option></tt> values to/from a multiple select form
+field properly selects them and unselects them.</li>
+</ul>
+</div>
+<div class="section" id="id202">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Static builds can specify the download directory with the
+<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id203">
+<h1>2.3 (2011-02-06)</h1>
+<div class="section" id="id204">
+<h2>Features added</h2>
+<ul class="simple">
+<li>When looking for children, <tt class="docutils literal">lxml.objectify</tt> takes '{}tag' as
+meaning an empty namespace, as opposed to the parent namespace.</li>
+</ul>
+</div>
+<div class="section" id="id205">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When finished reading from a file-like object, the parser
+immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
+<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
+file.</li>
+<li>Work-around for libxml2 bug that can leave the HTML parser in a
+non-functional state after parsing a severely broken document (fixed
+in libxml2 2.7.8).</li>
+<li><tt class="docutils literal">marque</tt> tag in HTML cleanup code is correctly named <tt class="docutils literal">marquee</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id206">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Some public functions in the Cython-level C-API have more explicit
+return types.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2010-09-06">
+<h1>2.3beta1 (2010-09-06)</h1>
+<div class="section" id="id207">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id208">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in newer libxml2 versions when moving elements between
+documents that had attributes on replaced XInclude nodes.</li>
+<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
+<tt class="docutils literal">base_url</tt> parameters.</li>
+<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
+<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
+use of os.tempnam. It now takes an optional 'encoding' parameter.</li>
+</ul>
+</div>
+<div class="section" id="id209">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha2-2010-07-24">
+<h1>2.3alpha2 (2010-07-24)</h1>
+<div class="section" id="id210">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id211">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XSLT when generating text-only result documents with a
+stylesheet created in a different thread.</li>
+</ul>
+</div>
+<div class="section" id="id212">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
+(following ElementTree 1.3).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha1-2010-06-19">
+<h1>2.3alpha1 (2010-06-19)</h1>
+<div class="section" id="id213">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Keyword argument <tt class="docutils literal">namespaces</tt> in <tt class="docutils literal">lxml.cssselect.CSSSelector()</tt>
+to pass a prefix-to-namespace mapping for the selector.</li>
+<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
+globally registers a namespace prefix for a namespace that newly
+created Elements in that namespace will use automatically. Follows
+ElementTree 1.3.</li>
+<li>Support 'unicode' string name as encoding parameter in
+<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
+<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
+<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
+<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
+match the upcoming ElementTree 1.3 that will ship in the standard
+library of Python 3.2/2.7. This includes extended support for
+predicates as well as namespace prefixes (as known from XPath).</li>
+<li>During regular XPath evaluation, various ESXLT functions are
+available within their namespace when using libxslt 1.1.26 or later.</li>
+<li>Support passing a readily configured logger instance into
+<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
+<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
+override the DOCTYPE (internal subset) of the document.</li>
+<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
+to append the resulting content directly to an output element.</li>
+<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
+XSLT extension element itself.</li>
+<li>ISO-Schematron support based on the de-facto Schematron reference
+'skeleton implementation'.</li>
+<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
+parameters.</li>
+<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
+overhead.</li>
+<li>Setting the value of a namespaced attribute always uses a prefixed
+namespace instead of the default namespace even if both declare the
+same namespace URI. This avoids serialisation problems when an
+attribute from a default namespace is set on an element from a
+different namespace.</li>
+<li>XSLT extension elements: support for XSLT context nodes other than
+elements: document root, comments, processing instructions.</li>
+<li>Support for strings (in addition to Elements) in node-sets returned
+by extension functions.</li>
+<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
+the document on submit.</li>
+<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
+<li>Namespace URIs get validated against RFC 3986 at the API level
+(required by the XML namespace specification).</li>
+<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
+(compatible with ElementTree).</li>
+</ul>
+</div>
+<div class="section" id="id214">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>API is hardened against invalid proxy instances to prevent crashes
+due to incorrectly instantiated Element instances.</li>
+<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
+<li>Export ElementTree compatible XML parser class as
+<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
+<li>ObjectifiedDataElements in lxml.objectify were not hashable. They
+now use the hash value of the underlying Python value (string,
+number, etc.) to which they compare equal.</li>
+<li>Parsing broken fragments in lxml.html could fail if the fragment
+contained an orphaned closing '</div>' tag.</li>
+<li>Using XSLT extension elements around the root of the output document
+crashed.</li>
+<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr="val"]</span></tt> and
+<tt class="docutils literal">x <span class="pre">[attr="val"]</span></tt> (with a space). The latter now matches the
+attribute independent of the element.</li>
+<li>Rewriting multiple links inside of HTML text content could end up
+replacing unrelated content as replacements could impact the
+reported position of subsequent matches. Modifications are now
+simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
+return links in reversed order if they appear inside the same text
+node. Thus, replacements and link-internal modifications no longer
+change the position of links reported afterwards.</li>
+<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
+not represent the complete raw value (including child tags etc.). It
+now serialises the complete content on read and replaces the
+complete content by a string on write.</li>
+<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
+parsing failed. Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
+called after parsing, regardless of the outcome.</li>
+</ul>
+</div>
+<div class="section" id="id215">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Official support for Python 3.1.2 and later.</li>
+<li>Static MS Windows builds can now download their dependencies
+themselves.</li>
+<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
+Element object. It therefore no longer requires the garbage
+collector to clean up.</li>
+<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id216">
+<h1>2.2.8 (2010-09-02)</h1>
+<div class="section" id="id217">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in newer libxml2 versions when moving elements between
+documents that had attributes on replaced XInclude nodes.</li>
+<li>Import fix for urljoin in Python 3.1+.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id218">
+<h1>2.2.7 (2010-07-24)</h1>
+<div class="section" id="id219">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XSLT when generating text-only result documents with a
+stylesheet created in a different thread.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id220">
+<h1>2.2.6 (2010-03-02)</h1>
+<div class="section" id="id221">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed several Python 3 regressions by building with Cython 0.11.3.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id222">
+<h1>2.2.5 (2010-02-28)</h1>
+<div class="section" id="id223">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for running XSLT extension elements on the input root node
+(e.g. in a template matching on "/").</li>
+</ul>
+</div>
+<div class="section" id="id224">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XPath evaluation when reading smart strings from a document
+other than the original context document.</li>
+<li>Support recent versions of html5lib by not requiring its
+<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
+<li>Manually instantiating the custom element classes in
+<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
+<li>Invalid XML text characters were not rejected by the API when they
+appeared in unicode strings directly after non-ASCII characters.</li>
+<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
+<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
+<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
+<li>Crash in XSLT extension elements when the XSLT context node is not
+an element.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id225">
+<h1>2.2.4 (2009-11-11)</h1>
+<div class="section" id="id226">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Static build of libxml2/libxslt was broken.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id227">
+<h1>2.2.3 (2009-10-30)</h1>
+<div class="section" id="id228">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id229">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
+parser.</li>
+<li>Looking up and deleting attributes without a namespace could hit a
+namespaced attribute of the same name instead.</li>
+<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
+ones) could leave a partially initialised element in the tree.</li>
+<li>Modifying trees that contain parsed entity references could result
+in an infinite loop.</li>
+<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
+attribute value was rejected as a non-unicode/non-ascii string</li>
+<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
+messages.</li>
+<li>Invalid syntax in CSS expressions could lead to an infinite loop in
+the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>CSS special character escapes were not properly handled in
+<tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
+attribute were not handled correctly. The HTML standard dictates
+that their value is defined by their text content. This is now
+supported by lxml.html.</li>
+<li>XPath raised a TypeError when finding CDATA sections. This is now
+fully supported.</li>
+<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
+<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
+namespaces when annotation is disabled.</li>
+<li>Feed parser failed to honour the 'recover' option on parse errors.</li>
+<li>Diverting the error logging to Python's logging system was broken.</li>
+</ul>
+</div>
+<div class="section" id="id230">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id231">
+<h1>2.2.2 (2009-06-21)</h1>
+<div class="section" id="id232">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New helper functions <tt class="docutils literal">strip_attributes()</tt>, <tt class="docutils literal">strip_elements()</tt>,
+<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
+from a subtree.</li>
+</ul>
+</div>
+<div class="section" id="id233">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Namespace cleanup on subtree insertions could result in missing
+namespace declarations (and potentially crashes) if the element
+defining a namespace was deleted and the namespace was not used by
+the top element of the inserted subtree but only in deeper subtrees.</li>
+<li>Raising an exception from a parser target callback didn't always
+terminate the parser.</li>
+<li>Only {true, false, 1, 0} are accepted as the lexical representation for
+BoolElement ({True, False, T, F, t, f} not any more), restoring lxml <= 2.0
+behaviour.</li>
+</ul>
+</div>
+<div class="section" id="id234">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id235">
+<h1>2.2.1 (2009-06-02)</h1>
+<div class="section" id="id236">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Injecting default attributes into a document during XML Schema
+validation (also at parse time).</li>
+<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
+restrictions imposed by libxml2 2.7.</li>
+</ul>
+</div>
+<div class="section" id="id237">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The script for statically building libxml2 and libxslt didn't work
+in Py3.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
+for parsing (which could lead to a crash before release 2.6.24).</li>
+</ul>
+</div>
+<div class="section" id="id238">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id239">
+<h1>2.2 (2009-03-21)</h1>
+<div class="section" id="id240">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
+<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
+on serialisation.</li>
+</ul>
+</div>
+<div class="section" id="id241">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing an XML Schema with external imports from a
+filename.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta4-2009-02-27">
+<h1>2.2beta4 (2009-02-27)</h1>
+<div class="section" id="id242">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support strings and instantiable Element classes as child arguments
+to the constructor of custom Element classes.</li>
+<li>GZip compression support for serialisation to files and file-like
+objects.</li>
+</ul>
+</div>
+<div class="section" id="id243">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Deep-copying an ElementTree copied neither its sibling PIs and
+comments nor its internal/external DTD subsets.</li>
+<li>Soupparser failed on broken attributes without values.</li>
+<li>Crash in XSLT when overwriting an already defined attribute using
+<tt class="docutils literal">xsl:attribute</tt>.</li>
+<li>Crash bug in exception handling code under Python 3. This was due
+to a problem in Cython, not lxml itself.</li>
+<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
+<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
+was evaluated incorrectly.</li>
+</ul>
+</div>
+<div class="section" id="id244">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Official support for Python 3.0.1.</li>
+<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
+for Elements without text content.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta3-2009-02-17">
+<h1>2.2beta3 (2009-02-17)</h1>
+<div class="section" id="id245">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">XSLT.strparam()</tt> class method to wrap quoted string parameters
+that require escaping.</li>
+</ul>
+</div>
+<div class="section" id="id246">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak in XPath evaluators.</li>
+<li>Crash when parsing indented XML in one thread and merging it with
+other documents parsed in another thread.</li>
+<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
+string failed.</li>
+<li>Fixes following changes in Python 3.0.1.</li>
+<li>Minor fixes for Python 3.</li>
+</ul>
+</div>
+<div class="section" id="id247">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The global error log (which is copied into the exception log) is now
+local to a thread, which fixes some race conditions.</li>
+<li>More robust error handling on serialisation.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta2-2009-01-25">
+<h1>2.2beta2 (2009-01-25)</h1>
+<div class="section" id="id248">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Potential memory leak on exception handling. This was due to a
+problem in Cython, not lxml itself.</li>
+<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
+<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url("link")</span></tt> incorrectly
+(treating the quotation marks as part of the link).</li>
+<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id249">
+<h1>2.1.5 (2009-01-06)</h1>
+<div class="section" id="id250">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Potential memory leak on exception handling. This was due to a
+problem in Cython, not lxml itself.</li>
+<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2008-12-12">
+<h1>2.2beta1 (2008-12-12)</h1>
+<div class="section" id="id251">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Allow <tt class="docutils literal">lxml.html.diff.htmldiff</tt> to accept Element objects, not
+just HTML strings.</li>
+</ul>
+</div>
+<div class="section" id="id252">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+<li>Fixed missing whitespace before <tt class="docutils literal"><span class="pre">Link:...</span></tt> in <tt class="docutils literal">lxml.html.diff</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id253">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Export <tt class="docutils literal">lxml.html.parse</tt>.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id254">
+<h1>2.1.4 (2008-12-12)</h1>
+<div class="section" id="id255">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id256">
+<h1>2.0.11 (2008-12-12)</h1>
+<div class="section" id="id257">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha1-2008-11-23">
+<h1>2.2alpha1 (2008-11-23)</h1>
+<div class="section" id="id258">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for XSLT result tree fragments in XPath/XSLT extension
+functions.</li>
+<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
+<li>New options for exclusive C14N and C14N without comments.</li>
+<li>Instantiating a custom Element classes creates a new Element.</li>
+</ul>
+</div>
+<div class="section" id="id259">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>XSLT didn't inherit the parse options of the input document.</li>
+<li>0-bytes could slip through the API when used inside of Unicode
+strings.</li>
+<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
+that end in a parenthesis, will be linked in their entirety (typical
+with Wikipedia links).</li>
+</ul>
+</div>
+<div class="section" id="id260">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id261">
+<h1>2.1.3 (2008-11-17)</h1>
+<div class="section" id="id262">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id263">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Ref-count leaks when lxml enters a try-except statement while an
+outside exception lives in sys.exc_*(). This was due to a problem in
+Cython, not lxml itself.</li>
+<li>Parser Unicode decoding errors could get swallowed by other
+exceptions.</li>
+<li>Name/import errors in some Python modules.</li>
+<li>Internal DTD subsets that did not specify a system or public ID were
+not serialised and did not appear in the docinfo property of
+ElementTrees.</li>
+<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
+<li>Test suite fixes for libxml2 2.7.</li>
+<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
+<li>Resolver.resolve_file() was broken.</li>
+<li>Overriding the parser encoding didn't work for many encodings.</li>
+</ul>
+</div>
+<div class="section" id="id264">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id265">
+<h1>2.0.10 (2008-11-17)</h1>
+<div class="section" id="id266">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Ref-count leaks when lxml enters a try-except statement while an
+outside exception lives in sys.exc_*(). This was due to a problem in
+Cython, not lxml itself.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id267">
+<h1>2.1.2 (2008-09-05)</h1>
+<div class="section" id="id268">
+<h2>Features added</h2>
+<ul class="simple">
+<li>lxml.etree now tries to find the absolute path name of files when
+parsing from a file-like object. This helps custom resolvers when
+resolving relative URLs, as lixbml2 can prepend them with the path
+of the source document.</li>
+</ul>
+</div>
+<div class="section" id="id269">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory problem when passing documents between threads.</li>
+<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
+exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
+</ul>
+</div>
+<div class="section" id="id270">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id271">
+<h1>2.0.9 (2008-09-05)</h1>
+<div class="section" id="id272">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory problem when passing documents between threads.</li>
+<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
+exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id273">
+<h1>2.1.1 (2008-07-24)</h1>
+<div class="section" id="id274">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id275">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing XSLT stylesheets in a thread and using them in
+another.</li>
+<li>Encoding problem when including text with ElementInclude under
+Python 3.</li>
+</ul>
+</div>
+<div class="section" id="id276">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id277">
+<h1>2.0.8 (2008-07-24)</h1>
+<div class="section" id="id278">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
+with whitespace in URL attributes.</li>
+</ul>
+</div>
+<div class="section" id="id279">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing XSLT stylesheets in a thread and using them in
+another.</li>
+<li>CSS selector parser dropped remaining expression after a function
+with parameters.</li>
+</ul>
+</div>
+<div class="section" id="id280">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id281">
+<h1>2.1 (2008-07-09)</h1>
+<div class="section" id="id282">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
+keyword option).</li>
+<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
+with whitespace in URL attributes.</li>
+</ul>
+</div>
+<div class="section" id="id283">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Custom resolvers were not used for XMLSchema includes/imports and
+XInclude processing.</li>
+<li>CSS selector parser dropped remaining expression after a function
+with parameters.</li>
+</ul>
+</div>
+<div class="section" id="id284">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
+<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
+<li>Speed-up when running XSLTs on documents from other threads</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id285">
+<h1>2.0.7 (2008-06-20)</h1>
+<div class="section" id="id286">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
+</ul>
+</div>
+<div class="section" id="id287">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Descending dot-separated classes in CSS selectors were not resolved
+correctly.</li>
+<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
+<li>Potential threading problem in XInclude.</li>
+<li>Crash in Element class lookup classes when the __init__() method of
+the super class is not called from Python subclasses.</li>
+</ul>
+</div>
+<div class="section" id="id288">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Non-ASCII characters in attribute values are no longer escaped on
+serialisation.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta3-2008-06-19">
+<h1>2.1beta3 (2008-06-19)</h1>
+<div class="section" id="id289">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
+<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
+<li>Support for parsing from file-like objects that return unicode
+strings.</li>
+<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
+namespace declarations from a (sub)tree (experimental).</li>
+<li>XSLT results support the buffer protocol in Python 3.</li>
+<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
+a parsable string will return either a UTF-8 encoded byte string, a
+unicode string or a tree, based on the type of the input.
+Previously, the result was always a byte string or a tree.</li>
+<li>Support for Python 2.6 and 3.0 beta.</li>
+<li>File name handling now uses a heuristic to convert between byte
+strings (usually filenames) and unicode strings (usually URLs).</li>
+<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
+<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
+on reading under Python 2.x.</li>
+<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
+lxml.html (experimental).</li>
+<li>Most features in lxml.html work for XHTML namespaced tag names
+(experimental).</li>
+</ul>
+</div>
+<div class="section" id="id290">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
+<li>Crash in Element class lookup classes when the __init__() method of
+the super class is not called from Python subclasses.</li>
+<li>A number of problems related to unicode/byte string conversion of
+filenames and error messages were fixed.</li>
+<li>Building on MacOS-X now passes the "flat_namespace" option to the C
+compiler, which reportedly prevents build quirks and crashes on this
+platform.</li>
+<li>Windows build was broken.</li>
+<li>Rare crash when serialising to a file object with certain encodings.</li>
+</ul>
+</div>
+<div class="section" id="id291">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Non-ASCII characters in attribute values are no longer escaped on
+serialisation.</li>
+<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
+namespaces, etc. will result in a ValueError instead of an
+AssertionError (just like the tag well-formedness check).</li>
+<li>Up to several times faster attribute access (i.e. tree traversal) in
+lxml.objectify.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id292">
+<h1>2.0.6 (2008-05-31)</h1>
+<div class="section" id="id293">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id294">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find("tag[child]")</span></tt>.</li>
+<li>Windows build was broken.</li>
+<li>Moving a subtree from a document created in one thread into a
+document of another thread could crash when the rest of the source
+document is deleted while the subtree is still in use.</li>
+<li>Rare crash when serialising to a file object with certain encodings.</li>
+</ul>
+</div>
+<div class="section" id="id295">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>lxml should now build without problems on MacOS-X.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta2-2008-05-02">
+<h1>2.1beta2 (2008-05-02)</h1>
+<div class="section" id="id296">
+<h2>Features added</h2>
+<ul class="simple">
+<li>All parse functions in lxml.html take a <tt class="docutils literal">parser</tt> keyword argument.</li>
+<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
+attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
+pre-configured for the lxml.html package.</li>
+</ul>
+</div>
+<div class="section" id="id297">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Moving a subtree from a document created in one thread into a
+document of another thread could crash when the rest of the source
+document is deleted while the subtree is still in use.</li>
+<li>Passing an nsmap when creating an Element will no longer strip
+redundantly defined namespace URIs. This prevented the definition
+of more than one prefix for a namespace on the same Element.</li>
+</ul>
+</div>
+<div class="section" id="id298">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>If the default namespace is redundantly defined with a prefix on the
+same Element, the prefix will now be preferred for subelements and
+attributes. This allows users to work around a problem in libxml2
+where attributes from the default namespace could serialise without
+a prefix even when they appear on an Element with a different
+namespace (i.e. they would end up in the wrong namespace).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id299">
+<h1>2.0.5 (2008-05-01)</h1>
+<div class="section" id="id300">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id301">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Resolving to a filename in custom resolvers didn't work.</li>
+<li>lxml did not honour libxslt's second error state "STOPPED", which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 >= 2.6.31.</li>
+</ul>
+</div>
+<div class="section" id="id302">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta1-2008-04-15">
+<h1>2.1beta1 (2008-04-15)</h1>
+<div class="section" id="id303">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
+<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
+sections. Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
+sections by their text content.</li>
+<li><tt class="docutils literal">CDATA()</tt> factory to wrap string content as CDATA section.</li>
+</ul>
+</div>
+<div class="section" id="id304">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Resolving to a filename in custom resolvers didn't work.</li>
+<li>lxml did not honour libxslt's second error state "STOPPED", which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 >= 2.6.31.</li>
+<li>lxml.etree accepted non well-formed namespace prefix names.</li>
+</ul>
+</div>
+<div class="section" id="id305">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
+takes care of namespace cleanup when moving elements between
+different namespace contexts.</li>
+<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
+parser or through lxml.html now end up in a new HTML document
+(doctype HTML 4.01 Transitional) instead of a generic XML document.
+This mostly impacts the serialisation and the availability of a DTD
+context.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id306">
+<h1>2.0.4 (2008-04-13)</h1>
+<div class="section" id="id307">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id308">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Hanging thread in conjunction with GTK threading.</li>
+<li>Crash bug in iterparse when moving elements into other documents.</li>
+<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</li>
+<li><tt class="docutils literal"><span class="pre">ElementTree.find*()</span></tt> didn't accept QName objects.</li>
+</ul>
+</div>
+<div class="section" id="id309">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha1-2008-03-27">
+<h1>2.1alpha1 (2008-03-27)</h1>
+<div class="section" id="id310">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
+<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
+returns a dict of access configuration options.</li>
+<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
+<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
+<li>Extension elements for XSLT (experimental!)</li>
+<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
+an Element.</li>
+<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
+</ul>
+</div>
+<div class="section" id="id311">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Default encoding for plain text serialisation was different from
+that of XML serialisation (UTF-8 instead of ASCII).</li>
+</ul>
+</div>
+<div class="section" id="id312">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Minor API speed-ups.</li>
+<li>The benchmark suite now uses tail text in the trees, which makes the
+absolute numbers incomparable to previous results.</li>
+<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
+used to enable syntax highlighting for the doctest examples.</li>
+</ul>
+<p>Most long-time deprecated functions and methods were removed:</p>
+<ul>
+<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
+<tt class="docutils literal">etree.use_global_python_log()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
+<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
+<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
+<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
+yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
+instead.</p>
+</li>
+<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
+<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
+<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
+<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
+<tt class="docutils literal">objectify.set_default_parser()</tt></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id313">
+<h1>2.0.3 (2008-03-26)</h1>
+<div class="section" id="id314">
+<h2>Features added</h2>
+<ul class="simple">
+<li>soupparser.parse() allows passing keyword arguments on to
+BeautifulSoup.</li>
+<li><tt class="docutils literal">fromstring()</tt> method in <tt class="docutils literal">lxml.html.soupparser</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id315">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
+<tt class="docutils literal"><br></tt>).</li>
+<li>Handle entity replacements correctly in target parser.</li>
+<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
+<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
+which made them turn up in text content.</li>
+<li>Attribute assignment of custom PyTypes in objectify could fail to
+correctly serialise the value to a string.</li>
+</ul>
+</div>
+<div class="section" id="id316">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
+<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API. The old module
+remains for compatibility with ElementTree's own ElementSoup module.</li>
+<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
+build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
+<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
+<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
+override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
+compiler options. The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
+option.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id317">
+<h1>2.0.2 (2008-02-22)</h1>
+<div class="section" id="id318">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support passing <tt class="docutils literal">base_url</tt> to file parser functions to override
+the filename of the file(-like) object.</li>
+</ul>
+</div>
+<div class="section" id="id319">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The prefix for objectify's pytype namespace was missing from the set
+of default prefixes.</li>
+<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
+<li>Error type names in RelaxNG were reported incorrectly.</li>
+<li>Slice deletion bug fixed in objectify.</li>
+</ul>
+</div>
+<div class="section" id="id320">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
+<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
+(<tt class="docutils literal"><span class="pre">method="xml"</span></tt> for XHTML output).</li>
+<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
+<tt class="docutils literal">base_url</tt> argument.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id321">
+<h1>2.0.1 (2008-02-13)</h1>
+<div class="section" id="id322">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
+<li>Loads of new docstrings reflect the signature of functions and
+methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
+</ul>
+</div>
+<div class="section" id="id323">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
+<tt class="docutils literal">lxml.htmlbuilder</tt></li>
+<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
+was an unnamed input field. Now unnamed input fields are completely
+ignored.</li>
+<li>Setting an element slice in objectify could insert slice-overlapping
+elements at the wrong position.</li>
+</ul>
+</div>
+<div class="section" id="id324">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The generated API documentation was cleaned up and disburdened from
+non-public classes etc.</li>
+<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
+<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml. If
+you want to use it, feel free to copy it over to your own source
+base.</li>
+<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
+override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
+compiler options.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id325">
+<h1>2.0 (2008-02-01)</h1>
+<div class="section" id="id326">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Passing the <tt class="docutils literal">unicode</tt> type as <tt class="docutils literal">encoding</tt> to <tt class="docutils literal">tostring()</tt> will
+serialise to unicode. The <tt class="docutils literal">tounicode()</tt> function is now
+deprecated.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
+<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
+parser with the usual objectify setup.</li>
+<li>Plain ASCII XPath string results are no longer forced into unicode
+objects as in 2.0beta1, but are returned as plain strings as before.</li>
+<li>All XPath string results are 'smart' objects that have a
+<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
+<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
+<li>More accurate exception messages in validator creation.</li>
+<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
+<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
+selection make their Element container accessible through a
+<tt class="docutils literal">getparent()</tt> method. As a side-effect, they are now always
+unicode objects (even ASCII strings).</li>
+<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
+copy if they were not created in that thread.</li>
+<li>Invalid entity names and character references will be rejected by
+the <tt class="docutils literal">Entity()</tt> factory.</li>
+<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
+e.g. <tt class="docutils literal">&amp;</tt>.</li>
+<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
+in ET 1.3)</li>
+<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
+<li>ElementTree compatible TreeBuilder class.</li>
+<li>Use default prefixes for some common XML namespaces.</li>
+<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
+two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
+more general <tt class="docutils literal">allow_element(el)</tt>.</li>
+<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
+etree and in objectify</li>
+<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
+resolving a document as string data.</li>
+<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
+<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
+the special checking for one test.</li>
+<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
+The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
+<tt class="docutils literal">error_log</tt>.</li>
+<li>The normal parsers and the feed parser interface are now separated
+and can be used concurrently on the same parser instance.</li>
+<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
+ElementTree 1.3</li>
+<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
+parsing with the HTML parser (note that this interface may be
+subject to change)</li>
+<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
+of the parsed documents.</li>
+<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
+<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
+types in one step. Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
+<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
+argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
+serialise as XML, HTML or plain text content.</li>
+<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
+<tt class="docutils literal">findall()</tt></li>
+<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
+<li>Setting a QName object as value of the .text property or as an attribute
+will resolve its prefix in the respective context</li>
+<li>ElementTree-like parser target interface as described in
+<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
+<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
+(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
+<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
+integration with objectify. Provides extended type support based on
+registered PyTypes.</li>
+<li>XSLT objects now support deep copying</li>
+<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
+subelement straight with text, tail and attributes.</li>
+<li>XPath extension functions can now access the current context node
+(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
+(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
+parameter</li>
+<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
+<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
+doctests based on XML/HTML output. Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
+<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
+<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
+selectors.</li>
+<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
+treatment.</li>
+<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
+instance and no longer global.</li>
+<li>Schematron validation (incomplete in libxml2)</li>
+<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
+conversion function to strings to support setting text values from arbitrary
+types.</li>
+<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes. XML
+parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
+False to keep entities in the document.</li>
+<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
+<li>Error specific messages in XPath parsing and evaluation
+NOTE: for evaluation errors, you will now get an XPathEvalError instead of
+an XPathSyntaxError. To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
+<li>The regular expression functions in XPath now support passing a node-set
+instead of a string</li>
+<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
+<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
+</ul>
+</div>
+<div class="section" id="id327">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
+<li>Some Python 2.4-isms prevented lxml from building/running under
+Python 2.3.</li>
+<li>XPath on ElementTrees could crash when selecting the virtual root
+node of the ElementTree.</li>
+<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
+<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
+<li>Minor bugs in XSLT error message formatting.</li>
+<li>Result document memory leak in target parser.</li>
+<li>Target parser failed to report comments.</li>
+<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal"><object></tt>
+tags weren't recognized. (Note: plugin-specific link parameters
+still aren't recognized.) Also, the <tt class="docutils literal"><embed></tt> tag, though not
+standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
+<li>Using custom resolvers on XSLT stylesheets parsed from a string
+could request ill-formed URLs.</li>
+<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal"><tag <span class="pre">xmlns="..."></span></tt> in your
+output, it will then be namespace-neutral (before the ellipsis was
+treated as a real namespace).</li>
+<li>AttributeError in feed parser on parse errors</li>
+<li>XML feed parser setup problem</li>
+<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
+<li>lxml failed to serialise namespace declarations of elements other than the
+root node of a tree</li>
+<li>Race condition in XSLT where the resolver context leaked between concurrent
+XSLT calls</li>
+<li>lxml.etree did not check tag/attribute names</li>
+<li>The XML parser did not report undefined entities as error</li>
+<li>The text in exceptions raised by XML parsers, validators and XPath
+evaluators now reports the first error that occurred instead of the last</li>
+<li>Passing '' as XPath namespace prefix did not raise an error</li>
+<li>Thread safety in XPath evaluators</li>
+</ul>
+</div>
+<div class="section" id="id328">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Exceptions carry only the part of the error log that is related to
+the operation that caused the error.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
+file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
+<li>The test suite now skips most doctests under Python 2.3.</li>
+<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
+realclean</tt> instead)</li>
+<li>Minor performance tweaks for Element instantiation and subelement
+creation</li>
+<li>Various places in the XPath, XSLT and iteration APIs now require
+keyword-only arguments.</li>
+<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
+match the order used in all other iteration methods. The second
+argument ('preceding') is now a keyword-only argument.</li>
+<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
+reverted to return an iterator as it did in lxml 1.x. The ET API
+specification allows it to return either a sequence or an iterator,
+and it traditionally returned a sequence in ET and an iterator in
+lxml. However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
+method, which should be used in new code wherever possible.</li>
+<li>The 'pretty printed' serialisation of ElementTree objects now
+inserts newlines at the root level between processing instructions,
+comments and the root tag.</li>
+<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
+<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
+required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
+<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
+<li>The module source files were renamed to "lxml.*.pyx", such as
+"lxml.etree.pyx". This was changed for consistency with the way
+Pyrex commonly handles package imports. The main effect is that
+classes now know about their fully qualified class name, including
+the package name of their module.</li>
+<li>Keyword-only arguments in some API functions, especially in the
+parsers and serialisers.</li>
+<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
+between HTML tags and XML tags based on the parser that was used to
+parse or create them. HTML tags no longer reject any non-ASCII
+characters in tag names but only spaces and the special characters
+<tt class="docutils literal"><span class="pre"><>&/"'</span></tt>.</li>
+<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
+(which can crash on certain XPath errors)</li>
+<li>Type annotation in objectify now preserves the already annotated type by
+default to prevent losing type information that is already there.</li>
+<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
+an iterator (ElementTree 1.3 compatible behaviour)</li>
+<li>objectify.PyType for None is now called "NoneType"</li>
+<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
+original name is still available as alias</li>
+<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
+generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
+<li>Major refactoring in XPath/XSLT extension function code</li>
+<li>Network access in parsers disabled by default</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id329">
+<h1>1.3.6 (2007-10-29)</h1>
+<div class="section" id="id330">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Backported decref crash fix from 2.0</li>
+<li>Well hidden free-while-in-use crash bug in ObjectPath</li>
+</ul>
+</div>
+<div class="section" id="id331">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The test suites now run <tt class="docutils literal">gc.collect()</tt> in the <tt class="docutils literal">tearDown()</tt>
+methods. While this makes them take a lot longer to run, it also
+makes it easier to link a specific test to garbage collection
+problems that would otherwise appear in later tests.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id332">
+<h1>1.3.5 (2007-10-22)</h1>
+<div class="section" id="id333">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id334">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>lxml.etree could crash when adding more than 10000 namespaces to a
+document</li>
+<li>lxml failed to serialise namespace declarations of elements other
+than the root node of a tree</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id335">
+<h1>1.3.4 (2007-08-30)</h1>
+<div class="section" id="id336">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">ElementMaker</tt> in <tt class="docutils literal">lxml.builder</tt> now accepts the keyword arguments
+<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
+creates.</li>
+<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
+and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
+subset of the document respectively.</li>
+<li>Serialising an ElementTree now includes any internal DTD subsets that are
+part of the document, as well as comments and PIs that are siblings of the
+root node.</li>
+</ul>
+</div>
+<div class="section" id="id337">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parsing with the <tt class="docutils literal">no_network</tt> option could fail</li>
+</ul>
+</div>
+<div class="section" id="id338">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
+an Error as 1.3.3 did. The reason is that a number of projects currently
+misuse the previous lack of tag name validation to generate namespace
+prefixes without declaring namespaces. Apart from the danger of generating
+broken XML this way, it also breaks most of the namespace-aware tools in
+XML, including XPath, XSLT and validation. lxml 1.3.x will continue to
+support this bug with a Warning, while lxml 2.0 will be strict about
+well-formed tag names (not only regarding ':').</li>
+<li>Serialising an Element no longer includes its comment and PI siblings (only
+ElementTree serialisation includes them).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id339">
+<h1>1.3.3 (2007-07-26)</h1>
+<div class="section" id="id340">
+<h2>Features added</h2>
+<ul class="simple">
+<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
+instructions and comments while parsing XML</li>
+<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
+<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
+the parser you pass.</li>
+<li>Support <tt class="docutils literal">base_url</tt> keyword argument in <tt class="docutils literal">HTML()</tt> and <tt class="docutils literal">XML()</tt></li>
+</ul>
+</div>
+<div class="section" id="id341">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parsing from Python Unicode strings failed on some platforms</li>
+<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
+<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
+<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id342">
+<h1>1.3.2 (2007-07-03)</h1>
+<div class="section" id="id343">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id344">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>"deallocating None" crash bug</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id345">
+<h1>1.3.1 (2007-07-02)</h1>
+<div class="section" id="id346">
+<h2>Features added</h2>
+<ul class="simple">
+<li>objectify.DataElement now supports setting values from existing data
+elements (not just plain Python types) and reuses defined namespaces etc.</li>
+<li>E-factory support for lxml.objectify (<tt class="docutils literal">objectify.E</tt>)</li>
+</ul>
+</div>
+<div class="section" id="id347">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Better way to prevent crashes in Element proxy cleanup code</li>
+<li>objectify.DataElement didn't set up None value correctly</li>
+<li>objectify.DataElement didn't check the value against the provided type hints</li>
+<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id348">
+<h1>1.3 (2007-06-24)</h1>
+<div class="section" id="id349">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
+scheme that can access the entire tree in read-only mode to help determining
+a suitable Element class</li>
+<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
+<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
+<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
+adding processing instructions and comments around the root node</li>
+<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
+<li>Extended type annotation in objectify: cleaner annotation namespace setup
+plus new <tt class="docutils literal">deannotate()</tt> function</li>
+<li>Support for custom Element class instantiation in lxml.sax: passing a
+<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
+lookup context of that function</li>
+<li>'.' represents empty ObjectPath (identity)</li>
+<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
+<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
+keys/values/items for a libxml2 node</li>
+<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
+<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
+<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
+<li>Support for pickling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
+<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
+<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
+a better handling of namespaces when moving elements between documents.</li>
+</ul>
+</div>
+<div class="section" id="id350">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Removing Elements from a tree could make them lose their namespace
+declarations</li>
+<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
+<li>Replacing the children slice of an Element would cut off the tails of the
+original children</li>
+<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
+<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
+<li>API functions now check incoming strings for XML conformity. Zero bytes or
+low ASCII characters are no longer accepted (AssertionError).</li>
+<li>XSLT parsing failed to pass resolver context on to imported documents</li>
+<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
+<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
+<li>More ET compatible behaviour when writing out XML declarations or not</li>
+<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
+<li>Documents lost their top-level PIs and comments on serialisation</li>
+<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
+PIs are copied.</li>
+<li>Possible memory leaks in namespace handling when moving elements between
+documents</li>
+</ul>
+</div>
+<div class="section" id="id351">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>major restructuring in the documentation</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id352">
+<h1>1.2.1 (2007-02-27)</h1>
+<div class="section" id="id353">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Build fixes for MS compiler</li>
+<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element["text"]</span></tt> failed</li>
+<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
+to access</li>
+<li>The pattern for attribute names in ObjectPath was too restrictive</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id354">
+<h1>1.2 (2007-02-20)</h1>
+<div class="section" id="id355">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Rich comparison of QName objects</li>
+<li>Support for regular expressions in benchmark selection</li>
+<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
+<li>ElementInclude Python module for ElementTree compatible XInclude processing
+that honours custom resolvers registered with the source document</li>
+<li>ElementTree.parser property holds the parser used to parse the document</li>
+<li>setup.py has been refactored for greater readability and flexibility</li>
+<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
+runtime search paths has been renamed to --auto-rpath. This makes it
+possible to pass an --rpath directly to distutils; previously this was being
+shadowed.</li>
+</ul>
+</div>
+<div class="section" id="id356">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Element instantiation now uses locks to prevent race conditions with threads</li>
+<li>ElementTree.write() did not raise an exception when the file was not writable</li>
+<li>Error handling could crash under Python <= 2.4.1 - fixed by disabling thread
+support in these environments</li>
+<li>Element.find*() did not accept QName objects as path</li>
+</ul>
+</div>
+<div class="section" id="id357">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>code cleanup: redundant _NodeBase super class merged into _Element class
+Note: although the impact should be zero in most cases, this change breaks
+the compatibility of the public C-API</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id358">
+<h1>1.1.2 (2006-10-30)</h1>
+<div class="section" id="id359">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Data elements in objectify support repr(), which is now used by dump()</li>
+<li>Source distribution now ships with a patched Pyrex</li>
+<li>New C-API function makeElement() to create new elements with text,
+tail, attributes and namespaces</li>
+<li>Reuse original parser flags for XInclude</li>
+<li>Simplified support for handling XSLT processing instructions</li>
+</ul>
+</div>
+<div class="section" id="id360">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parser resources were not freed before the next parser run</li>
+<li>Open files and XML strings returned by Python resolvers were not
+closed/freed</li>
+<li>Crash in the IDDict returned by XMLDTDID</li>
+<li>Copying Comments and ProcessingInstructions failed</li>
+<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
+<li>Memory leak when garbage collecting tailed root elements</li>
+<li>HTML script/style content was not propagated to .text</li>
+<li>Show text xincluded between text nodes correctly in .text and .tail</li>
+<li>'integer * objectify.StringElement' operation was not supported</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id361">
+<h1>1.1.1 (2006-09-21)</h1>
+<div class="section" id="id362">
+<h2>Features added</h2>
+<ul class="simple">
+<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
+<li>countchildren() method on objectify.ObjectifiedElement</li>
+<li>Support custom elements for tree nodes in lxml.objectify</li>
+</ul>
+</div>
+<div class="section" id="id363">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>lxml.objectify failed to support long data values (e.g., "123L")</li>
+<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
+<li>Factories objectify.Element() and objectify.DataElement() were missing
+<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
+<li>Changing the default parser in lxml.objectify did not update the factories
+Element() and DataElement()</li>
+<li>Let lxml.objectify.Element() always generate tree elements (not data
+elements)</li>
+<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id364">
+<h1>1.1 (2006-09-13)</h1>
+<div class="section" id="id365">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Comments and processing instructions return '<!-- comment -->' and
+'<?pi-target content?>' for repr()</li>
+<li>Parsers are now the preferred (and default) place where element class lookup
+schemes should be registered. Namespace lookup is no longer supported by
+default.</li>
+<li>Support for Python 2.5 beta</li>
+<li>Unlock the GIL for deep copying documents and for XPath()</li>
+<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
+<li>Support for parser options in iterparse()</li>
+<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
+tuples</li>
+<li>The XPath expression "/" now returns an empty list instead of raising an
+exception</li>
+<li>XML-Object API on top of lxml (lxml.objectify)</li>
+<li>Customizable Element class lookup:<ul>
+<li>different pre-implemented lookup mechanisms</li>
+<li>support for externally provided lookup functions</li>
+</ul>
+</li>
+<li>Support for processing instructions (ET-like, not compatible)</li>
+<li>Public C-level API for independent extension modules</li>
+<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
+<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
+documentation for differences)</li>
+<li>Element.nsmap property returns a mapping of all namespace prefixes known at
+the Element to their namespace URI</li>
+<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
+<li>Threading support in parsers and serializers:<ul>
+<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
+<li>File operations (on file names) free the GIL</li>
+<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
+<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
+</ul>
+</li>
+<li>Element iteration over XPath axes:<ul>
+<li>Element.iterdescendants() iterates over the descendants of an element</li>
+<li>Element.iterancestors() iterates over the ancestors of an element (from
+parent to parent)</li>
+<li>Element.itersiblings() iterates over either the following or preceding
+siblings of an element</li>
+<li>Element.iterchildren() iterates over the children of an element in either
+direction</li>
+<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
+generated elements</li>
+</ul>
+</li>
+<li>Element.getnext() and Element.getprevious() return the direct siblings of an
+element</li>
+</ul>
+</div>
+<div class="section" id="id366">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>filenames with local 8-bit encoding were not supported</li>
+<li>1.1beta did not compile under Python 2.3</li>
+<li>ignore unknown 'pyval' attribute values in objectify</li>
+<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
+<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
+<li>XPathSyntaxError now inherits from XPathError</li>
+<li>Threading race conditions in RelaxNG and XMLSchema</li>
+<li>Crash when mixing elements from XSLT results into other trees, concurrent
+XSLT is only allowed when the stylesheet was parsed in the main thread</li>
+<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
+differences in the regular expression syntax)</li>
+<li>Setting element.text to '' returned None on request, not the empty string</li>
+<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
+<li>Creating documents no longer copies the parser for later URL resolving. For
+performance reasons, only a reference is kept. Resolver updates on the
+parser will now be reflected by documents that were parsed before the
+change. Although this should rarely become visible, it is a behavioral
+change from 1.0.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id367">
+<h1>1.0.4 (2006-09-09)</h1>
+<div class="section" id="id368">
+<h2>Features added</h2>
+<ul class="simple">
+<li>List-like <tt class="docutils literal">Element.extend()</tt> method</li>
+</ul>
+</div>
+<div class="section" id="id369">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in tail handling in <tt class="docutils literal">Element.replace()</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id370">
+<h1>1.0.3 (2006-08-08)</h1>
+<div class="section" id="id371">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Element.replace(old, new) method to replace a subelement by another one</li>
+</ul>
+</div>
+<div class="section" id="id372">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when mixing elements from XSLT results into other trees</li>
+<li>Copying/deepcopying did not work for ElementTree objects</li>
+<li>Setting an attribute to a non-string value did not raise an exception</li>
+<li>Element.remove() deleted the tail text from the removed Element</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id373">
+<h1>1.0.2 (2006-06-27)</h1>
+<div class="section" id="id374">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for setting a custom default Element class as opposed to namespace
+specific classes (which still override the default class)</li>
+</ul>
+</div>
+<div class="section" id="id375">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Rare exceptions in Python list functions were not handled</li>
+<li>Parsing accepted unicode strings with XML encoding declaration in certain
+cases</li>
+<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
+<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
+<li>XSLT and parser exception messages include the error line number</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id376">
+<h1>1.0.1 (2006-06-09)</h1>
+<div class="section" id="id377">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Repeated calls to Element.attrib now efficiently return the same instance</li>
+</ul>
+</div>
+<div class="section" id="id378">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Document deallocation could crash in certain garbage collection scenarios</li>
+<li>Extension function calls in XSLT variable declarations could break the
+stylesheet and crash on repeated calls</li>
+<li>Deep copying Elements could lose namespaces declared in parents</li>
+<li>Deep copying Elements did not copy tail</li>
+<li>Parsing file(-like) objects failed to load external entities</li>
+<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
+<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
+<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
+<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id379">
+<h1>1.0 (2006-06-01)</h1>
+<div class="section" id="id380">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Element.getiterator() and the findall() methods support finding arbitrary
+elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
+<li>Another speedup in tree iteration code</li>
+<li>General speedup of Python Element object creation and deallocation</li>
+<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
+<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
+<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
+document that contains the element.</li>
+<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
+find the element in the tree structure</li>
+<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
+<li>Comment texts can be changed through the API</li>
+<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
+<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
+<li>ElementTree.write() no longer serializes in memory (reduced memory
+footprint)</li>
+<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
+<li>Support for writing the XML representation of Elements and ElementTrees to
+Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
+<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
+<li>Parsing a unicode string no longer copies the string (reduced memory
+footprint)</li>
+<li>Parsing file-like objects reads chunks rather than the whole file (reduced
+memory footprint)</li>
+<li>Parsing StringIO objects from the start avoids copying the string (reduced
+memory footprint)</li>
+<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
+information, original encoding and XML version as seen by the parser</li>
+<li>etree module can be compiled without libxslt by commenting out the line
+<tt class="docutils literal">include "xslt.pxi"</tt> near the end of the etree.pyx source file</li>
+<li>Better error messages in parser exceptions</li>
+<li>Error reporting also works in XSLT</li>
+<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
+resolvers are registered at parser level</li>
+<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
+enabled by default, can be switched off with 'regexp=False' keyword argument</li>
+<li>Support for exslt extensions (libexslt) and libxslt extra functions
+(node-set, document, write, output)</li>
+<li>Substantial speedup in XPath.evaluate()</li>
+<li>HTMLParser for parsing (broken) HTML</li>
+<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
+implementation of libxml2 (as opposed to ET compatible XMLID)</li>
+</ul>
+</div>
+<div class="section" id="id381">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak in Element.__setitem__</li>
+<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
+<li>Memory leak in XPath extension functions</li>
+<li>Memory leak in unicode related setup code</li>
+<li>Element now raises ValueError on empty tag names</li>
+<li>Namespace fixing after moving elements between documents could fail if the
+source document was freed too early</li>
+<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -> 't')
+didn't reset the namespace</li>
+<li>Unknown constants from newer libxml2 versions could raise exceptions in the
+error handlers</li>
+<li>lxml.etree compiles much faster</li>
+<li>On libxml2 <= 2.6.22, parsing strings with encoding declaration could fail
+in certain cases</li>
+<li>Document reference in ElementTree objects was not updated when the root
+element was moved to a different document</li>
+<li>Running absolute XPath expressions on an Element now evaluates against the
+root tree</li>
+<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
+<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
+objects</li>
+<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
+<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
+<li>Memory leak when using iconv encoders in tostring/write</li>
+<li>Deep copying Elements and ElementTrees maintains the document information</li>
+<li>Serialization functions raise LookupError for unknown encodings</li>
+<li>Memory deallocation crash resulting from deep copying elements</li>
+<li>Some ElementTree methods could crash if the root node was not initialized
+(neither file nor element passed to the constructor)</li>
+<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
+dictionary</li>
+<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
+<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
+<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
+ElementTree root node as reference point</li>
+<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id382">
+<h1>0.9.2 (2006-05-10)</h1>
+<div class="section" id="id383">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Speedup for Element.makeelement(): the new element reuses the original
+libxml2 document instead of creating a new empty one</li>
+<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
+<li>ElementTree compatible QName class</li>
+<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
+</ul>
+</div>
+<div class="section" id="id384">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
+<li>Memory leak if write_c14n fails to write the file after conversion</li>
+<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
+<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id385">
+<h1>0.9.1 (2006-03-30)</h1>
+<div class="section" id="id386">
+<h2>Features added</h2>
+<ul class="simple">
+<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
+SaxError on mismatch</li>
+<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
+(startElement, endElement) and defaults to empty attributes (keyword
+argument)</li>
+<li>Speedup for repeatedly accessing element tag names</li>
+<li>Minor API performance improvements</li>
+</ul>
+</div>
+<div class="section" id="id387">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory deallocation bug when using XSLT output method "html"</li>
+<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
+<li>lxml.tests package will no longer be installed (is still in source tar)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id388">
+<h1>0.9 (2006-03-20)</h1>
+<div class="section" id="id389">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Error logging API for libxml2 error messages</li>
+<li>Various performance improvements</li>
+<li>Benchmark script for lxml, ElementTree and cElementTree</li>
+<li>Support for registering extension functions through new FunctionNamespace
+class (see doc/extensions.txt)</li>
+<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
+<li>Support for variables in XPath expressions (also in XPath class)</li>
+<li>XPath class for compiled XPath expressions</li>
+<li>XMLID module level function (ElementTree compatible)</li>
+<li>XMLParser API for customized libxml2 parser configuration</li>
+<li>Support for custom Element classes through new Namespace API (see
+doc/namespace_extensions.txt)</li>
+<li>Common exception base class LxmlError for module exceptions</li>
+<li>real iterator support in iter(Element), Element.getiterator()</li>
+<li>XSLT objects are callable, result trees support str()</li>
+<li>Added MANIFEST.in for easier creation of RPM files.</li>
+<li>'getparent' method on elements allows navigation to an element's
+parent element.</li>
+<li>Python core compatible SAX tree builder and SAX event generator. See
+doc/sax.txt for more information.</li>
+</ul>
+</div>
+<div class="section" id="id390">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Segfaults and memory leaks in various API functions of Element</li>
+<li>Segfault in XSLT.tostring()</li>
+<li>ElementTree objects no longer interfere, Elements can be root of different
+ElementTrees at the same time</li>
+<li>document('') works in XSLT documents read from files (in-memory documents
+cannot support this due to libxslt deficiencies)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id391">
+<h1>0.8 (2005-11-03)</h1>
+<div class="section" id="id392">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
+does the same thing, and does <em>not</em> create a shallow copy, as that
+makes no sense in the context of libxml2 trees. This means a
+potential incompatibility with ElementTree, but there's more chance
+that it works than if copy.copy() isn't supported at all.</li>
+<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
+supported and parsing of gzipped XML files works.</li>
+<li>implemented index() on elements, allowing one to find the index of a
+SubElement.</li>
+</ul>
+</div>
+<div class="section" id="id393">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Use xslt-config instead of xml2-config to find out libxml2
+directories to take into account a case where libxslt is installed
+in a different directory than libxslt.</li>
+<li>Eliminate crash condition in iteration when text nodes are changed.</li>
+<li>Passing 'None' to tostring() does not result in a segfault anymore,
+but an AssertionError.</li>
+<li>Some test fixes for Windows.</li>
+<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
+syntax errors. This should be less confusing.</li>
+<li>Fixed error with uncaught exception in Pyrex code.</li>
+<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
+segfault.</li>
+<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
+<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
+libxml2 version, as it should.</li>
+<li>Passing a UTF-8 encoded string to the XML() function would fail;
+fixed.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id394">
+<h1>0.7 (2005-06-15)</h1>
+<div class="section" id="id395">
+<h2>Features added</h2>
+<ul class="simple">
+<li>parameters (XPath expressions) can be passed to XSLT using keyword
+parameters.</li>
+<li>Simple XInclude support. Calling the xinclude() method on a tree
+will process any XInclude statements in the document.</li>
+<li>XMLSchema support. Use the XMLSchema class or the convenience
+xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
+<li>Added convenience xslt() method on tree. This is less efficient
+than the XSLT object, but makes it easier to write quick code.</li>
+<li>Added convenience relaxng() method on tree. This is less efficient
+than the RelaxNG object, but makes it easier to write quick code.</li>
+<li>Make it possible to use XPathEvaluator with elements as well. The
+XPathEvaluator in this case will retain the element so multiple
+XPath queries can be made against one element efficiently. This
+replaces the second argument to the .evaluate() method that existed
+previously.</li>
+<li>Allow registerNamespace() to be called on an XPathEvaluator, after
+creation, to add additional namespaces. Also allow registerNamespaces(),
+which does the same for a namespace dictionary.</li>
+<li>Add 'prefix' attribute to element to be able to read prefix information.
+This is entirely read-only.</li>
+<li>It is possible to supply an extra nsmap keyword parameter to
+the Element() and SubElement() constructors, which supplies a
+prefix to namespace URI mapping. This will create namespace
+prefix declarations on these elements and these prefixes will show up
+in XML serialization.</li>
+</ul>
+</div>
+<div class="section" id="id396">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Killed yet another memory management related bug: trees created
+using newDoc would not get a libxml2-level dictionary, which caused
+problems when deallocating these documents later if they contained a
+node that came from a document with a dictionary.</li>
+<li>Moving namespaced elements between documents was problematic as
+references to the original document would remain. This has been fixed
+by applying xmlReconciliateNs() after each move operation.</li>
+<li>Can pass None to 'dump()' without segfaults.</li>
+<li>tostring() works properly for non-root elements as well.</li>
+<li>Cleaned out the tostring() method so it should handle encoding
+correctly.</li>
+<li>Cleaned out the ElementTree.write() method so it should handle encoding
+correctly. Writing directly to a file should also be faster, as there is no
+need to go through a Python string in that case. Made sure the test cases
+test both serializing to StringIO as well as serializing to a real file.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id397">
+<h1>0.6 (2005-05-14)</h1>
+<div class="section" id="id398">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Changed setup.py so that library_dirs is also guessed. This should
+help with compilation on the Mac OS X platform, where otherwise the
+wrong library (shipping with the OS) could be picked up.</li>
+<li>Tweaked setup.py so that it picks up the version from version.txt.</li>
+</ul>
+</div>
+<div class="section" id="id399">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Do the right thing when handling namespaced attributes.</li>
+<li>fix bug where tostring() moved nodes into new documents. tostring()
+had very nasty side-effects before this fix, sorry!</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id400">
+<h1>0.5.1 (2005-04-09)</h1>
+<ul class="simple">
+<li>Python 2.2 compatibility fixes.</li>
+<li>unicode fixes in Element() and Comment() as well as XML(); unicode
+input wasn't properly being UTF-8 encoded.</li>
+</ul>
+</div>
+<div class="section" id="id401">
+<h1>0.5 (2005-04-08)</h1>
+<p>Initial public release.</p>
+</div>
+</div>
+<div class="footer">
+<hr class="footer" />
+Generated on: 2019-02-28.
+
+</div>
+</body>
+</html>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="elementtree-compatibility-of-lxml-etree">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
<p>A lot of care has been taken to ensure compatibility between etree and
ElementTree. Nonetheless, some differences and incompatibilities exist:</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="credits">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Credits</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Credits</h1>
<div class="section" id="main-contributors">
<h1>Main contributors</h1>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="lxml-cssselect">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.cssselect</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.cssselect</h1>
<p>lxml supports a number of interesting languages for tree traversal and element
selection. The most important is obviously <a class="reference external" href="xpathxslt.html#xpath">XPath</a>, but there is also
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="using-custom-element-classes-in-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Using custom Element classes in lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Using custom Element classes in lxml</h1>
<p>lxml has very sophisticated support for custom Element classes. You
can provide your own classes for Elements and have lxml use them by
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="beautifulsoup-parser">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">BeautifulSoup Parser</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">BeautifulSoup Parser</h1>
<p><a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> is a Python package for working with real-world and broken HTML,
just like <a class="reference external" href="lxmlhtml.html">lxml.html</a>. As of version 4.x, it can use
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="python-extensions-for-xpath-and-xslt">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Python extensions for XPath and XSLT</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Python extensions for XPath and XSLT</h1>
<p>This document describes how to use Python extension functions in XPath
and XSLT like this:</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="html5lib-parser">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">html5lib Parser</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">html5lib Parser</h1>
<p><a class="reference external" href="http://code.google.com/p/html5lib/">html5lib</a> is a Python package that implements the HTML5 parsing algorithm
which is heavily influenced by current browsers and based on the <a class="reference external" href="http://www.whatwg.org/specs/web-apps/current-work/">WHATWG
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml - XML and HTML with Python</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml - XML and HTML with Python</h1>
<div class="pagequote line-block">
<div class="line"><a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3252/focus=3258">» lxml takes all the pain out of XML. «</a></div>
</div>
<div class="section" id="documentation">
<h1>Documentation</h1>
-<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-4.3.1.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-4.3.2.pdf">PDF
documentation</a>. The HTML documentation from this web site is part of
the normal <a class="reference external" href="#download">source download</a>.</p>
<ul class="simple">
Index</a> (PyPI). It has the source
that compiles on various platforms. The source distribution is signed
with <a class="reference external" href="pubkey.asc">this key</a>.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-4.3.1.tgz">lxml 4.3.1</a>, released 2019-02-08
-(<a class="reference external" href="/changes-4.3.1.html">changes for 4.3.1</a>). <a class="reference external" href="#old-versions">Older versions</a>
+<p>The latest version is <a class="reference external" href="/files/lxml-4.3.2.tgz">lxml 4.3.2</a>, released 2019-02-29
+(<a class="reference external" href="/changes-4.3.2.html">changes for 4.3.2</a>). <a class="reference external" href="#old-versions">Older versions</a>
are listed below.</p>
<p>Please take a look at the
<a class="reference external" href="installation.html">installation instructions</a> !</p>
part of the source distribution, so if you want to download the
documentation for offline use, take the source archive and copy the
<tt class="docutils literal">doc/html</tt> directory out of the source tree, or use the
-<a class="reference external" href="lxmldoc-4.3.1.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-4.3.2.pdf">PDF documentation</a>.</p>
<p>The latest <a class="reference external" href="https://github.com/lxml/lxml/archive/master.zip">installable developer sources</a>
are available from Github. It's also possible to check out
the latest development version of lxml from Github directly, using a command
<a class="reference external" href="http://lxml.de/4.1/">4.1</a>
<a class="reference external" href="http://lxml.de/4.2/">4.2</a></p>
<ul class="simple">
+<li><a class="reference external" href="/files/lxml-4.3.2.tgz">lxml 4.3.2</a>, released 2019-02-29 (<a class="reference external" href="/changes-4.3.2.html">changes for 4.3.2</a>)</li>
<li><a class="reference external" href="/files/lxml-4.3.1.tgz">lxml 4.3.1</a>, released 2019-02-08 (<a class="reference external" href="/changes-4.3.1.html">changes for 4.3.1</a>)</li>
<li><a class="reference external" href="/files/lxml-4.3.0.tgz">lxml 4.3.0</a>, released 2019-01-04 (<a class="reference external" href="/changes-4.3.0.html">changes for 4.3.0</a>)</li>
<li><a class="reference external" href="/files/lxml-4.2.6.tgz">lxml 4.2.6</a>, released 2019-01-03 (<a class="reference external" href="/changes-4.2.6.html">changes for 4.2.6</a>)</li>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="installing-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Installing lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Installing lxml</h1>
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="why-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Why lxml?</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Why lxml?</h1>
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="how-to-read-the-source-of-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to read the source of lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">How to read the source of lxml</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="lxml-html">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.html</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.html</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="lxml-objectify">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.objectify</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">lxml.objectify</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="parsing-xml-and-html-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Parsing XML and HTML with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Parsing XML and HTML with lxml</h1>
<p>lxml provides a very simple and powerful API for parsing XML and HTML. It
supports one-step parsing as well as step-by-step parsing using an
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="benchmarks-and-speed">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Benchmarks and Speed</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Benchmarks and Speed</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="document-loading-and-url-resolving">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Document loading and URL resolving</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Document loading and URL resolving</h1>
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="sax-support">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Sax support</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Sax support</h1>
<p>In this document we'll describe lxml's SAX support. lxml has support for
producing SAX events for an ElementTree or Element. lxml can also turn SAX
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</head>
<body>
<h1>Sitemap of lxml.de - Processing XML and HTML with Python</h1>
- <div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li></ul><li><a href="http://lxml.de/files/">Download files</a></li></div></div></body>
+ <div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li></ul><li><a href="http://lxml.de/files/">Download files</a></li></div></div></body>
</html>
\ No newline at end of file
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="the-lxml-etree-tutorial">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The lxml.etree Tutorial</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">The lxml.etree Tutorial</h1>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="validation-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Validation with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">Validation with lxml</h1>
<p>Apart from the built-in DTD support in parsers, lxml currently supports three
schema languages: <a class="reference external" href="http://en.wikipedia.org/wiki/Document_Type_Definition">DTD</a>, <a class="reference external" href="http://www.relaxng.org/">Relax NG</a> and <a class="reference external" href="http://www.w3.org/XML/Schema">XML Schema</a>. All three provide
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
</script><meta content="width=device-width, initial-scale=1" name="viewport" /></head>
<body onclick="hide_menu()">
<div class="document" id="xpath-and-xslt-with-lxml">
-<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 1-menu"><li class="menu title"><a href="changes-4.3.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">XPath and XSLT with lxml</h1>
+<div class="sidemenu" id="sidemenu"><div class="menutrigger" onclick="trigger_menu(event)">Menu</div><div class="menu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#where-to-get-it">Where to get it</a></li><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-dev-sources">Building lxml from dev sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#source-builds-on-ms-windows">Source builds on MS Windows</a></li><li class="menu item"><a href="installation.html#source-builds-on-macos-x">Source builds on MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#incremental-event-parsing">Incremental event parsing</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#passing-generated-trees-through-python">Passing generated trees through Python</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg-or-wheel">Building an egg or wheel</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 4 3 2-menu"><li class="menu title"><a href="changes-4.3.2.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="/sitemap.html">Sitemap</a></li></ul></div></div><h1 class="title">XPath and XSLT with lxml</h1>
<p>lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through
libxml2 and libxslt in a standards compliant way.</p>
</div>
<div class="footer">
<hr class="footer" />
-Generated on: 2019-02-08.
+Generated on: 2019-02-28.
</div>
</body>
that compiles on various platforms. The source distribution is signed
with `this key <pubkey.asc>`_.
-The latest version is `lxml 4.3.1`_, released 2019-02-08
-(`changes for 4.3.1`_). `Older versions <#old-versions>`_
+The latest version is `lxml 4.3.2`_, released 2019-02-29
+(`changes for 4.3.2`_). `Older versions <#old-versions>`_
are listed below.
Please take a look at the
..
and the `latest in-development version <http://lxml.de/dev/>`_.
-.. _`PDF documentation`: lxmldoc-4.3.1.pdf
+.. _`PDF documentation`: lxmldoc-4.3.2.pdf
+
+* `lxml 4.3.2`_, released 2019-02-29 (`changes for 4.3.2`_)
* `lxml 4.3.1`_, released 2019-02-08 (`changes for 4.3.1`_)
* `older releases <http://lxml.de/3.7/#old-versions>`_
+.. _`lxml 4.3.2`: /files/lxml-4.3.2.tgz
.. _`lxml 4.3.1`: /files/lxml-4.3.1.tgz
.. _`lxml 4.3.0`: /files/lxml-4.3.0.tgz
.. _`lxml 4.2.6`: /files/lxml-4.2.6.tgz
.. _`lxml 4.0.0`: /files/lxml-4.0.0.tgz
.. _`lxml 3.8.0`: /files/lxml-3.8.0.tgz
+.. _`changes for 4.3.2`: /changes-4.3.2.html
.. _`changes for 4.3.1`: /changes-4.3.1.html
.. _`changes for 4.3.0`: /changes-4.3.0.html
.. _`changes for 4.2.6`: /changes-4.2.6.html
Metadata-Version: 2.1
Name: lxml
-Version: 4.3.1
+Version: 4.3.2
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
as soon as a maintenance branch has been established. Note that this
requires Cython to be installed at an appropriate version for the build.
- 4.3.1 (2019-02-08)
+ 4.3.2 (2019-02-29)
==================
- * LP#1814522: Crash when appending a child subtree that contains unsubstituted
- entity references.
+ Bugs fixed
+ ----------
+
+ * Crash in 4.3.1 when appending a child subtree with certain text nodes.
+
+ Other changes
+ -------------
+
+ * Built with Cython 0.29.6.
doc/html/api.html
doc/html/build.html
doc/html/capi.html
-doc/html/changes-4.3.1.html
+doc/html/changes-4.3.2.html
doc/html/compatibility.html
doc/html/credits.html
doc/html/cssselect.html
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
#endif
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
cdef int _linkChild(xmlNode* c_parent, xmlNode* c_node) except -1:
- """Simple version of 'xmlAddChild()' that does not deep-fix the document links.
+ """Adaptation of 'xmlAddChild()' that deep-fix the document links iteratively.
"""
assert _isElement(c_node)
c_node.parent = c_parent
c_node.prev = c_parent.last
c_parent.last.next = c_node
c_parent.last = c_node
+
+ _setTreeDoc(c_node, c_parent.doc)
return 0
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
}
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
def __repr__(self):
return "<%s.%s object name=%r type=%r occur=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.type, self.occur, id(self))
- property name:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.name) if self._c_node.name is not NULL else None
-
- property type:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef int type = self._c_node.type
- if type == tree.XML_ELEMENT_CONTENT_PCDATA:
- return "pcdata"
- elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
- return "element"
- elif type == tree.XML_ELEMENT_CONTENT_SEQ:
- return "seq"
- elif type == tree.XML_ELEMENT_CONTENT_OR:
- return "or"
- else:
- return None
-
- property occur:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef int occur = self._c_node.ocur
- if occur == tree.XML_ELEMENT_CONTENT_ONCE:
- return "once"
- elif occur == tree.XML_ELEMENT_CONTENT_OPT:
- return "opt"
- elif occur == tree.XML_ELEMENT_CONTENT_MULT:
- return "mult"
- elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
- return "plus"
- else:
- return None
-
- property left:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- c1 = self._c_node.c1
- if c1:
- node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- node._dtd = self._dtd
- node._c_node = <tree.xmlElementContent*>c1
- return node
- else:
- return None
-
- property right:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- c2 = self._c_node.c2
- if c2:
- node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- node._dtd = self._dtd
- node._c_node = <tree.xmlElementContent*>c2
- return node
- else:
- return None
+ @property
+ def name(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+
+ @property
+ def type(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef int type = self._c_node.type
+ if type == tree.XML_ELEMENT_CONTENT_PCDATA:
+ return "pcdata"
+ elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ return "element"
+ elif type == tree.XML_ELEMENT_CONTENT_SEQ:
+ return "seq"
+ elif type == tree.XML_ELEMENT_CONTENT_OR:
+ return "or"
+ else:
+ return None
+
+ @property
+ def occur(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef int occur = self._c_node.ocur
+ if occur == tree.XML_ELEMENT_CONTENT_ONCE:
+ return "once"
+ elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ return "opt"
+ elif occur == tree.XML_ELEMENT_CONTENT_MULT:
+ return "mult"
+ elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
+ return "plus"
+ else:
+ return None
+
+ @property
+ def left(self):
+ _assertValidDTDNode(self, self._c_node)
+ c1 = self._c_node.c1
+ if c1:
+ node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ node._dtd = self._dtd
+ node._c_node = <tree.xmlElementContent*>c1
+ return node
+ else:
+ return None
+
+ @property
+ def right(self):
+ _assertValidDTDNode(self, self._c_node)
+ c2 = self._c_node.c2
+ if c2:
+ node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ node._dtd = self._dtd
+ node._c_node = <tree.xmlElementContent*>c2
+ return node
+ else:
+ return None
@cython.final
def __repr__(self):
return "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.elemname, self.prefix, self.type, self.default, self.default_value, id(self))
- property name:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.name) if self._c_node.name is not NULL else None
-
- property elemname:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
-
- property prefix:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
-
- property type:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef int type = self._c_node.atype
- if type == tree.XML_ATTRIBUTE_CDATA:
- return "cdata"
- elif type == tree.XML_ATTRIBUTE_ID:
- return "id"
- elif type == tree.XML_ATTRIBUTE_IDREF:
- return "idref"
- elif type == tree.XML_ATTRIBUTE_IDREFS:
- return "idrefs"
- elif type == tree.XML_ATTRIBUTE_ENTITY:
- return "entity"
- elif type == tree.XML_ATTRIBUTE_ENTITIES:
- return "entities"
- elif type == tree.XML_ATTRIBUTE_NMTOKEN:
- return "nmtoken"
- elif type == tree.XML_ATTRIBUTE_NMTOKENS:
- return "nmtokens"
- elif type == tree.XML_ATTRIBUTE_ENUMERATION:
- return "enumeration"
- elif type == tree.XML_ATTRIBUTE_NOTATION:
- return "notation"
- else:
- return None
-
- property default:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef int default = self._c_node.def_
- if default == tree.XML_ATTRIBUTE_NONE:
- return "none"
- elif default == tree.XML_ATTRIBUTE_REQUIRED:
- return "required"
- elif default == tree.XML_ATTRIBUTE_IMPLIED:
- return "implied"
- elif default == tree.XML_ATTRIBUTE_FIXED:
- return "fixed"
- else:
- return None
-
- property default_value:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ @property
+ def name(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+
+ @property
+ def elemname(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
+
+ @property
+ def prefix(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+
+ @property
+ def type(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef int type = self._c_node.atype
+ if type == tree.XML_ATTRIBUTE_CDATA:
+ return "cdata"
+ elif type == tree.XML_ATTRIBUTE_ID:
+ return "id"
+ elif type == tree.XML_ATTRIBUTE_IDREF:
+ return "idref"
+ elif type == tree.XML_ATTRIBUTE_IDREFS:
+ return "idrefs"
+ elif type == tree.XML_ATTRIBUTE_ENTITY:
+ return "entity"
+ elif type == tree.XML_ATTRIBUTE_ENTITIES:
+ return "entities"
+ elif type == tree.XML_ATTRIBUTE_NMTOKEN:
+ return "nmtoken"
+ elif type == tree.XML_ATTRIBUTE_NMTOKENS:
+ return "nmtokens"
+ elif type == tree.XML_ATTRIBUTE_ENUMERATION:
+ return "enumeration"
+ elif type == tree.XML_ATTRIBUTE_NOTATION:
+ return "notation"
+ else:
+ return None
+
+ @property
+ def default(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef int default = self._c_node.def_
+ if default == tree.XML_ATTRIBUTE_NONE:
+ return "none"
+ elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ return "required"
+ elif default == tree.XML_ATTRIBUTE_IMPLIED:
+ return "implied"
+ elif default == tree.XML_ATTRIBUTE_FIXED:
+ return "fixed"
+ else:
+ return None
+
+ @property
+ def default_value(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
def itervalues(self):
_assertValidDTDNode(self, self._c_node)
def __repr__(self):
return "<%s.%s object name=%r prefix=%r type=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.prefix, self.type, id(self))
- property name:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.name) if self._c_node.name is not NULL else None
-
- property prefix:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
-
- property type:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef int type = self._c_node.etype
- if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
- return "undefined"
- elif type == tree.XML_ELEMENT_TYPE_EMPTY:
- return "empty"
- elif type == tree.XML_ELEMENT_TYPE_ANY:
- return "any"
- elif type == tree.XML_ELEMENT_TYPE_MIXED:
- return "mixed"
- elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
- return "element"
- else:
- return None
-
- property content:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- cdef tree.xmlElementContent *content = self._c_node.content
- if content:
- node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- node._dtd = self._dtd
- node._c_node = content
- return node
- else:
- return None
+ @property
+ def name(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+
+ @property
+ def prefix(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+
+ @property
+ def type(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef int type = self._c_node.etype
+ if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
+ return "undefined"
+ elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ return "empty"
+ elif type == tree.XML_ELEMENT_TYPE_ANY:
+ return "any"
+ elif type == tree.XML_ELEMENT_TYPE_MIXED:
+ return "mixed"
+ elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
+ return "element"
+ else:
+ return None
+
+ @property
+ def content(self):
+ _assertValidDTDNode(self, self._c_node)
+ cdef tree.xmlElementContent *content = self._c_node.content
+ if content:
+ node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ node._dtd = self._dtd
+ node._c_node = content
+ return node
+ else:
+ return None
def iterattributes(self):
_assertValidDTDNode(self, self._c_node)
def __repr__(self):
return "<%s.%s object name=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, id(self))
- property name:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ @property
+ def name(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.name) if self._c_node.name is not NULL else None
- property orig:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
+ @property
+ def orig(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
- property content:
- def __get__(self):
- _assertValidDTDNode(self, self._c_node)
- return funicode(self._c_node.content) if self._c_node.content is not NULL else None
+ @property
+ def content(self):
+ _assertValidDTDNode(self, self._c_node)
+ return funicode(self._c_node.content) if self._c_node.content is not NULL else None
################################################################################
self._error_log._buildExceptionMessage(u"error parsing DTD"),
self._error_log)
- property name:
- def __get__(self):
- if self._c_dtd is NULL:
- return None
- return funicodeOrNone(self._c_dtd.name)
-
- property external_id:
- def __get__(self):
- if self._c_dtd is NULL:
- return None
- return funicodeOrNone(self._c_dtd.ExternalID)
-
- property system_url:
- def __get__(self):
- if self._c_dtd is NULL:
- return None
- return funicodeOrNone(self._c_dtd.SystemID)
+ @property
+ def name(self):
+ if self._c_dtd is NULL:
+ return None
+ return funicodeOrNone(self._c_dtd.name)
+
+ @property
+ def external_id(self):
+ if self._c_dtd is NULL:
+ return None
+ return funicodeOrNone(self._c_dtd.ExternalID)
+
+ @property
+ def system_url(self):
+ if self._c_dtd is NULL:
+ return None
+ return funicodeOrNone(self._c_dtd.SystemID)
def iterelements(self):
cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
size_t last;
};
-/* "src/lxml/proxy.pxi":582
+/* "src/lxml/proxy.pxi":590
* # adopt an xmlDoc from an external libxml2 document source
*
* cdef _Document _adoptForeignDoc(xmlDoc* c_doc, _BaseParser parser=None, bint is_owned=True): # <<<<<<<<<<<<<<
xmlNode *node;
};
-/* "src/lxml/xmlerror.pxi":676
+/* "src/lxml/xmlerror.pxi":680
*
*
* cdef void _connectGenericErrorLog(log, int c_domain=-1): # <<<<<<<<<<<<<<
int c_domain;
};
-/* "lxml/etree.pyx":2725
+/* "lxml/etree.pyx":2736
* self._storeTags(item, seen)
*
* cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1: # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":180
+/* "src/lxml/xmlerror.pxi":184
*
*
* cdef class _BaseErrorLog: # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":270
+/* "src/lxml/xmlerror.pxi":274
* return message
*
* cdef class _ListErrorLog(_BaseErrorLog): # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":388
+/* "src/lxml/xmlerror.pxi":392
* @cython.final
* @cython.internal
* cdef class _ErrorLogContext: # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":425
+/* "src/lxml/xmlerror.pxi":429
*
*
* cdef class _ErrorLog(_ListErrorLog): # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":478
+/* "src/lxml/xmlerror.pxi":482
* self._entries.append(entry)
*
* cdef class _DomainErrorLog(_ErrorLog): # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":487
+/* "src/lxml/xmlerror.pxi":491
* _ErrorLog.receive(self, entry)
*
* cdef class _RotatingErrorLog(_ErrorLog): # <<<<<<<<<<<<<<
};
-/* "src/lxml/xmlerror.pxi":505
+/* "src/lxml/xmlerror.pxi":509
* del self._entries[:offset]
*
* cdef class PyErrorLog(_BaseErrorLog): # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementType;
-/* "lxml/etree.pyx":1623
+/* "lxml/etree.pyx":1634
*
* @cython.internal
* cdef class __ContentOnlyElement(_Element): # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":1690
+/* "lxml/etree.pyx":1701
* return []
*
* cdef class _Comment(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_obj_4lxml_5etree__Comment {
struct __pyx_obj_4lxml_5etree___ContentOnlyElement __pyx_base;
};
-/* "lxml/etree.pyx":1698
+/* "lxml/etree.pyx":1709
* return "<!--%s-->" % strrepr(self.text)
*
* cdef class _ProcessingInstruction(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_obj_4lxml_5etree__ProcessingInstruction {
struct __pyx_obj_4lxml_5etree___ContentOnlyElement __pyx_base;
};
-/* "lxml/etree.pyx":1749
+/* "lxml/etree.pyx":1760
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
*
* cdef class _Entity(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_obj_4lxml_5etree__Entity {
struct __pyx_obj_4lxml_5etree___ContentOnlyElement __pyx_base;
};
-/* "lxml/etree.pyx":1778
+/* "lxml/etree.pyx":1789
*
*
* cdef class QName: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":1847
+/* "lxml/etree.pyx":1858
*
*
* cdef public class _ElementTree [ type LxmlElementTreeType, # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTreeType;
-/* "lxml/etree.pyx":2395
+/* "lxml/etree.pyx":2406
* @cython.final
* @cython.freelist(16)
* cdef class _Attrib: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2533
+/* "lxml/etree.pyx":2544
* @cython.final
* @cython.internal
* cdef class _AttribIterator: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2574
+/* "lxml/etree.pyx":2585
*
*
* cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher, # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType;
-/* "lxml/etree.pyx":2605
+/* "lxml/etree.pyx":2616
* self._name = NULL
*
* cdef public class _ElementIterator(_ElementTagMatcher) [ # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementIteratorType;
-/* "lxml/etree.pyx":2642
+/* "lxml/etree.pyx":2653
* @cython.final
* @cython.internal
* cdef class _MultiTagMatcher: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2779
+/* "lxml/etree.pyx":2790
* return False
*
* cdef class _ElementMatchIterator: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2808
+/* "lxml/etree.pyx":2819
* return current_node
*
* cdef class ElementChildIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2828
+/* "lxml/etree.pyx":2839
* self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
*
* cdef class SiblingsIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2843
+/* "lxml/etree.pyx":2854
* self._storeNext(node)
*
* cdef class AncestorsIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2853
+/* "lxml/etree.pyx":2864
* self._storeNext(node)
*
* cdef class ElementDepthFirstIterator: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":2929
+/* "lxml/etree.pyx":2940
* return NULL
*
* cdef class ElementTextIterator: # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":3055
+/* "lxml/etree.pyx":3066
*
*
* cdef class CDATA: # <<<<<<<<<<<<<<
* @cython.final
* @cython.internal
* cdef class _ReadOnlyPIProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for processing instructions (for internal use only!)"
- * property target:
+ * """A read-only proxy for processing instructions (for internal use only!)"""
+ * @property
*/
struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy {
struct __pyx_obj_4lxml_5etree__ReadOnlyProxy __pyx_base;
* @cython.final
* @cython.internal
* cdef class _ReadOnlyEntityProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for entity references (for internal use only!)"
+ * """A read-only proxy for entity references (for internal use only!)"""
* property name:
*/
struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy {
*
* @cython.internal
* cdef class _ReadOnlyElementProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"The main read-only Element proxy class (for internal use only!)."
+ * """The main read-only Element proxy class (for internal use only!)."""
*
*/
struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy {
* @cython.final
* @cython.internal
* cdef class _ModifyContentOnlyPIProxy(_ModifyContentOnlyProxy): # <<<<<<<<<<<<<<
- * u"""A read-only proxy that allows changing the text/target content of a
+ * """A read-only proxy that allows changing the text/target content of a
* processing instruction.
*/
struct __pyx_obj_4lxml_5etree__ModifyContentOnlyPIProxy {
* @cython.final
* @cython.internal
* cdef class _ModifyContentOnlyEntityProxy(_ModifyContentOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for entity references (for internal use only!)"
+ * "A read-only proxy for entity references (for internal use only!)"
* property name:
*/
struct __pyx_obj_4lxml_5etree__ModifyContentOnlyEntityProxy {
};
-/* "lxml/etree.pyx":3497
+/* "lxml/etree.pyx":3508
* # Validation
*
* cdef class DocumentInvalid(LxmlError): # <<<<<<<<<<<<<<
};
-/* "lxml/etree.pyx":3505
+/* "lxml/etree.pyx":3516
*
*
* cdef class _Validator: # <<<<<<<<<<<<<<
/* "src/lxml/dtd.pxi":163
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
/* "src/lxml/dtd.pxi":223
- * return None
+ * return None
*
* def iterattributes(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
/* "src/lxml/dtd.pxi":314
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
* def iterelements(self): # <<<<<<<<<<<<<<
* cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setGeneric(struct __pyx_obj_4lxml_5etree__LogEntry *, int, int, int, int, PyObject *, PyObject *);
-/* "src/lxml/xmlerror.pxi":180
+/* "src/lxml/xmlerror.pxi":184
*
*
* cdef class _BaseErrorLog: # <<<<<<<<<<<<<<
static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *);
-/* "src/lxml/xmlerror.pxi":270
+/* "src/lxml/xmlerror.pxi":274
* return message
*
* cdef class _ListErrorLog(_BaseErrorLog): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__ListErrorLog *__pyx_vtabptr_4lxml_5etree__ListErrorLog;
-/* "src/lxml/xmlerror.pxi":388
+/* "src/lxml/xmlerror.pxi":392
* @cython.final
* @cython.internal
* cdef class _ErrorLogContext: # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree_16_ErrorLogContext_pop_error_log(struct __pyx_obj_4lxml_5etree__ErrorLogContext *);
-/* "src/lxml/xmlerror.pxi":425
+/* "src/lxml/xmlerror.pxi":429
*
*
* cdef class _ErrorLog(_ListErrorLog): # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree_9_ErrorLog_disconnect(struct __pyx_obj_4lxml_5etree__ErrorLog *);
-/* "src/lxml/xmlerror.pxi":478
+/* "src/lxml/xmlerror.pxi":482
* self._entries.append(entry)
*
* cdef class _DomainErrorLog(_ErrorLog): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog *__pyx_vtabptr_4lxml_5etree__DomainErrorLog;
-/* "src/lxml/xmlerror.pxi":487
+/* "src/lxml/xmlerror.pxi":491
* _ErrorLog.receive(self, entry)
*
* cdef class _RotatingErrorLog(_ErrorLog): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__RotatingErrorLog *__pyx_vtabptr_4lxml_5etree__RotatingErrorLog;
-/* "src/lxml/xmlerror.pxi":505
+/* "src/lxml/xmlerror.pxi":509
* del self._entries[:offset]
*
* cdef class PyErrorLog(_BaseErrorLog): # <<<<<<<<<<<<<<
static xmlDtd *__pyx_f_4lxml_5etree_7DocInfo__get_c_dtd(struct __pyx_obj_4lxml_5etree_DocInfo *);
-/* "lxml/etree.pyx":1623
+/* "lxml/etree.pyx":1634
*
* @cython.internal
* cdef class __ContentOnlyElement(_Element): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
-/* "lxml/etree.pyx":1690
+/* "lxml/etree.pyx":1701
* return []
*
* cdef class _Comment(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_vtabstruct_4lxml_5etree__Comment {
static struct __pyx_vtabstruct_4lxml_5etree__Comment *__pyx_vtabptr_4lxml_5etree__Comment;
-/* "lxml/etree.pyx":1698
+/* "lxml/etree.pyx":1709
* return "<!--%s-->" % strrepr(self.text)
*
* cdef class _ProcessingInstruction(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction {
static struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction *__pyx_vtabptr_4lxml_5etree__ProcessingInstruction;
-/* "lxml/etree.pyx":1749
+/* "lxml/etree.pyx":1760
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
*
* cdef class _Entity(__ContentOnlyElement): # <<<<<<<<<<<<<<
- * property tag:
- * def __get__(self):
+ * @property
+ * def tag(self):
*/
struct __pyx_vtabstruct_4lxml_5etree__Entity {
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTreeType;
-/* "lxml/etree.pyx":1847
+/* "lxml/etree.pyx":1858
*
*
* cdef public class _ElementTree [ type LxmlElementTreeType, # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType;
-/* "lxml/etree.pyx":2574
+/* "lxml/etree.pyx":2585
*
*
* cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher, # <<<<<<<<<<<<<<
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementIteratorType;
-/* "lxml/etree.pyx":2605
+/* "lxml/etree.pyx":2616
* self._name = NULL
*
* cdef public class _ElementIterator(_ElementTagMatcher) [ # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree__ElementIterator *__pyx_vtabptr_4lxml_5etree__ElementIterator;
-/* "lxml/etree.pyx":2642
+/* "lxml/etree.pyx":2653
* @cython.final
* @cython.internal
* cdef class _MultiTagMatcher: # <<<<<<<<<<<<<<
static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlAttr *);
-/* "lxml/etree.pyx":2779
+/* "lxml/etree.pyx":2790
* return False
*
* cdef class _ElementMatchIterator: # <<<<<<<<<<<<<<
static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
-/* "lxml/etree.pyx":2808
+/* "lxml/etree.pyx":2819
* return current_node
*
* cdef class ElementChildIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree_ElementChildIterator *__pyx_vtabptr_4lxml_5etree_ElementChildIterator;
-/* "lxml/etree.pyx":2828
+/* "lxml/etree.pyx":2839
* self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
*
* cdef class SiblingsIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator *__pyx_vtabptr_4lxml_5etree_SiblingsIterator;
-/* "lxml/etree.pyx":2843
+/* "lxml/etree.pyx":2854
* self._storeNext(node)
*
* cdef class AncestorsIterator(_ElementMatchIterator): # <<<<<<<<<<<<<<
static struct __pyx_vtabstruct_4lxml_5etree_AncestorsIterator *__pyx_vtabptr_4lxml_5etree_AncestorsIterator;
-/* "lxml/etree.pyx":2853
+/* "lxml/etree.pyx":2864
* self._storeNext(node)
*
* cdef class ElementDepthFirstIterator: # <<<<<<<<<<<<<<
* @cython.final
* @cython.internal
* cdef class _ReadOnlyPIProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for processing instructions (for internal use only!)"
- * property target:
+ * """A read-only proxy for processing instructions (for internal use only!)"""
+ * @property
*/
struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy {
* @cython.final
* @cython.internal
* cdef class _ReadOnlyEntityProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for entity references (for internal use only!)"
+ * """A read-only proxy for entity references (for internal use only!)"""
* property name:
*/
*
* @cython.internal
* cdef class _ReadOnlyElementProxy(_ReadOnlyProxy): # <<<<<<<<<<<<<<
- * u"The main read-only Element proxy class (for internal use only!)."
+ * """The main read-only Element proxy class (for internal use only!)."""
*
*/
* @cython.final
* @cython.internal
* cdef class _ModifyContentOnlyPIProxy(_ModifyContentOnlyProxy): # <<<<<<<<<<<<<<
- * u"""A read-only proxy that allows changing the text/target content of a
+ * """A read-only proxy that allows changing the text/target content of a
* processing instruction.
*/
* @cython.final
* @cython.internal
* cdef class _ModifyContentOnlyEntityProxy(_ModifyContentOnlyProxy): # <<<<<<<<<<<<<<
- * u"A read-only proxy for entity references (for internal use only!)"
+ * "A read-only proxy for entity references (for internal use only!)"
* property name:
*/
static struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *__pyx_vtabptr_4lxml_5etree_XSLTExtension;
-/* "lxml/etree.pyx":3505
+/* "lxml/etree.pyx":3516
*
*
* cdef class _Validator: # <<<<<<<<<<<<<<
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
/* ClassMethod.proto */
#include "descrobject.h"
-static PyObject* __Pyx_Method_ClassMethod(PyObject *method);
+static CYTHON_UNUSED PyObject* __Pyx_Method_ClassMethod(PyObject *method);
/* RegisterModuleCleanup.proto */
static void __pyx_module_cleanup(PyObject *self);
static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *, __pyx_t_4lxml_5etree__nscache *, xmlNs **); /*proto*/
static void __pyx_f_4lxml_5etree__cleanUpFromNamespaceAdaptation(xmlNode *, __pyx_t_4lxml_5etree__nscache *, xmlNs *); /*proto*/
static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *, xmlDoc *, xmlNode *); /*proto*/
+static void __pyx_f_4lxml_5etree__setTreeDoc(xmlNode *, xmlDoc *); /*proto*/
static CYTHON_INLINE void __pyx_f_4lxml_5etree__fixDocChildren(xmlNode *, xmlDoc *); /*proto*/
static int __pyx_f_4lxml_5etree__fixCNs(struct LxmlDocument *, xmlNode *, xmlNode *, __pyx_t_4lxml_5etree__nscache *, xmlNs *); /*proto*/
static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *, struct LxmlDocument *, size_t); /*proto*/
static const char __pyx_k_Unknown_error[] = "\077\077 Unknown error \077\077\n";
static const char __pyx_k_XIncludeError[] = "XIncludeError";
static const char __pyx_k_XMLPullParser[] = "XMLPullParser";
-static const char __pyx_k_XML_line_3165[] = "XML (line 3165)";
+static const char __pyx_k_XML_line_3176[] = "XML (line 3176)";
static const char __pyx_k_XSLTExtension[] = "XSLTExtension";
static const char __pyx_k_XSLTSaveError[] = "XSLTSaveError";
static const char __pyx_k_XSLT_strparam[] = "XSLT.strparam";
static PyObject *__pyx_n_s_XMLSyntaxError;
static PyObject *__pyx_n_s_XMLTreeBuilder;
static PyObject *__pyx_kp_s_XML_declaration_already_written;
-static PyObject *__pyx_kp_u_XML_line_3165;
+static PyObject *__pyx_kp_u_XML_line_3176;
static PyObject *__pyx_kp_u_XML_text_parser_None_base_url_No;
static PyObject *__pyx_n_u_XPATH_LOCATIONSET;
static PyObject *__pyx_n_u_XPATH_POINT;
static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_doc, xmlDoc *__pyx_v_c_source_doc, xmlNode *__pyx_v_c_element) {
xmlNode *__pyx_v_c_start_node;
xmlNode *__pyx_v_c_node;
- xmlDoc *__pyx_v_c_doc;
- xmlAttr *__pyx_v_c_attr;
+ CYTHON_UNUSED xmlDoc *__pyx_v_c_doc;
__pyx_t_4lxml_5etree__nscache __pyx_v_c_ns_cache;
xmlNs *__pyx_v_c_del_ns_list;
PyObject *__pyx_v_proxy_count = 0;
* c_start_node = c_element
*
* tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1) # <<<<<<<<<<<<<<
- * # 0) set C doc link
- * c_element.doc = c_doc
- */
- BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_element, 1);
-
- /* "src/lxml/proxy.pxi":341
- * tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
- * # 0) set C doc link
- * c_element.doc = c_doc # <<<<<<<<<<<<<<
- *
* if tree._isElementOrXInclude(c_element):
+ * if hasProxy(c_element):
*/
- __pyx_v_c_element->doc = __pyx_v_c_doc;
+ BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_element, 1);
- /* "src/lxml/proxy.pxi":343
- * c_element.doc = c_doc
+ /* "src/lxml/proxy.pxi":340
*
+ * tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
* if tree._isElementOrXInclude(c_element): # <<<<<<<<<<<<<<
* if hasProxy(c_element):
* proxy_count += 1
__pyx_t_3 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":344
- *
+ /* "src/lxml/proxy.pxi":341
+ * tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
* if tree._isElementOrXInclude(c_element):
* if hasProxy(c_element): # <<<<<<<<<<<<<<
* proxy_count += 1
__pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_element) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":345
+ /* "src/lxml/proxy.pxi":342
* if tree._isElementOrXInclude(c_element):
* if hasProxy(c_element):
* proxy_count += 1 # <<<<<<<<<<<<<<
*
* # 1) cut out namespaces defined here that are already known by
*/
- __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_proxy_count, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 345, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_proxy_count, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_proxy_count, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/proxy.pxi":344
- *
+ /* "src/lxml/proxy.pxi":341
+ * tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
* if tree._isElementOrXInclude(c_element):
* if hasProxy(c_element): # <<<<<<<<<<<<<<
* proxy_count += 1
*/
}
- /* "src/lxml/proxy.pxi":349
+ /* "src/lxml/proxy.pxi":346
* # 1) cut out namespaces defined here that are already known by
* # the ancestors
* if c_element.nsDef is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_element->nsDef != NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":350
+ /* "src/lxml/proxy.pxi":347
* # the ancestors
* if c_element.nsDef is not NULL:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_7);
/*try:*/ {
- /* "src/lxml/proxy.pxi":351
+ /* "src/lxml/proxy.pxi":348
* if c_element.nsDef is not NULL:
* try:
* _stripRedundantNamespaceDeclarations(c_element, &c_ns_cache, &c_del_ns_list) # <<<<<<<<<<<<<<
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, &c_ns_cache, c_del_ns_list)
*/
- __pyx_t_8 = __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(__pyx_v_c_element, (&__pyx_v_c_ns_cache), (&__pyx_v_c_del_ns_list)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 351, __pyx_L7_error)
+ __pyx_t_8 = __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(__pyx_v_c_element, (&__pyx_v_c_ns_cache), (&__pyx_v_c_del_ns_list)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 348, __pyx_L7_error)
- /* "src/lxml/proxy.pxi":350
+ /* "src/lxml/proxy.pxi":347
* # the ancestors
* if c_element.nsDef is not NULL:
* try: # <<<<<<<<<<<<<<
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "src/lxml/proxy.pxi":352
+ /* "src/lxml/proxy.pxi":349
* try:
* _stripRedundantNamespaceDeclarations(c_element, &c_ns_cache, &c_del_ns_list)
* except: # <<<<<<<<<<<<<<
*/
/*except:*/ {
__Pyx_AddTraceback("lxml.etree.moveNodeToDocument", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(4, 352, __pyx_L9_except_error)
+ if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(4, 349, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_t_10);
- /* "src/lxml/proxy.pxi":353
+ /* "src/lxml/proxy.pxi":350
* _stripRedundantNamespaceDeclarations(c_element, &c_ns_cache, &c_del_ns_list)
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, &c_ns_cache, c_del_ns_list) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__cleanUpFromNamespaceAdaptation(__pyx_v_c_start_node, (&__pyx_v_c_ns_cache), __pyx_v_c_del_ns_list);
- /* "src/lxml/proxy.pxi":354
+ /* "src/lxml/proxy.pxi":351
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, &c_ns_cache, c_del_ns_list)
* raise # <<<<<<<<<<<<<<
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_9, __pyx_t_10);
__pyx_t_4 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0;
- __PYX_ERR(4, 354, __pyx_L9_except_error)
+ __PYX_ERR(4, 351, __pyx_L9_except_error)
}
__pyx_L9_except_error:;
- /* "src/lxml/proxy.pxi":350
+ /* "src/lxml/proxy.pxi":347
* # the ancestors
* if c_element.nsDef is not NULL:
* try: # <<<<<<<<<<<<<<
__pyx_L12_try_end:;
}
- /* "src/lxml/proxy.pxi":349
+ /* "src/lxml/proxy.pxi":346
* # 1) cut out namespaces defined here that are already known by
* # the ancestors
* if c_element.nsDef is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":358
+ /* "src/lxml/proxy.pxi":355
* # 2) make sure the namespaces of an element and its attributes
* # are declared in this document (i.e. on the node or its parents)
* if c_element.ns is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_element->ns != NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":359
+ /* "src/lxml/proxy.pxi":356
* # are declared in this document (i.e. on the node or its parents)
* if c_element.ns is not NULL:
* _fixCNs(doc, c_start_node, c_element, &c_ns_cache, c_del_ns_list) # <<<<<<<<<<<<<<
*
* c_node = <xmlNode*>c_element.properties
*/
- __pyx_t_8 = __pyx_f_4lxml_5etree__fixCNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_element, (&__pyx_v_c_ns_cache), __pyx_v_c_del_ns_list); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 359, __pyx_L1_error)
+ __pyx_t_8 = __pyx_f_4lxml_5etree__fixCNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_element, (&__pyx_v_c_ns_cache), __pyx_v_c_del_ns_list); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 356, __pyx_L1_error)
- /* "src/lxml/proxy.pxi":358
+ /* "src/lxml/proxy.pxi":355
* # 2) make sure the namespaces of an element and its attributes
* # are declared in this document (i.e. on the node or its parents)
* if c_element.ns is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":361
+ /* "src/lxml/proxy.pxi":358
* _fixCNs(doc, c_start_node, c_element, &c_ns_cache, c_del_ns_list)
*
* c_node = <xmlNode*>c_element.properties # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = ((xmlNode *)__pyx_v_c_element->properties);
- /* "src/lxml/proxy.pxi":362
+ /* "src/lxml/proxy.pxi":359
*
* c_node = <xmlNode*>c_element.properties
* while c_node is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
if (!__pyx_t_3) break;
- /* "src/lxml/proxy.pxi":363
+ /* "src/lxml/proxy.pxi":360
* c_node = <xmlNode*>c_element.properties
* while c_node is not NULL:
* if c_node.ns is not NULL: # <<<<<<<<<<<<<<
* _fixCNs(doc, c_start_node, c_node, &c_ns_cache, c_del_ns_list)
- *
+ * c_node = c_node.next
*/
__pyx_t_3 = ((__pyx_v_c_node->ns != NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":364
+ /* "src/lxml/proxy.pxi":361
* while c_node is not NULL:
* if c_node.ns is not NULL:
* _fixCNs(doc, c_start_node, c_node, &c_ns_cache, c_del_ns_list) # <<<<<<<<<<<<<<
+ * c_node = c_node.next
*
- * # remove attribute from ID table (see xmlSetTreeDoc() in libxml2's tree.c)
*/
- __pyx_t_8 = __pyx_f_4lxml_5etree__fixCNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node, (&__pyx_v_c_ns_cache), __pyx_v_c_del_ns_list); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 364, __pyx_L1_error)
+ __pyx_t_8 = __pyx_f_4lxml_5etree__fixCNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node, (&__pyx_v_c_ns_cache), __pyx_v_c_del_ns_list); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(4, 361, __pyx_L1_error)
- /* "src/lxml/proxy.pxi":363
+ /* "src/lxml/proxy.pxi":360
* c_node = <xmlNode*>c_element.properties
* while c_node is not NULL:
* if c_node.ns is not NULL: # <<<<<<<<<<<<<<
* _fixCNs(doc, c_start_node, c_node, &c_ns_cache, c_del_ns_list)
- *
- */
- }
-
- /* "src/lxml/proxy.pxi":367
- *
- * # remove attribute from ID table (see xmlSetTreeDoc() in libxml2's tree.c)
- * c_attr = <tree.xmlAttr*>c_node # <<<<<<<<<<<<<<
- * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
- * tree.xmlRemoveID(c_source_doc, c_attr)
- */
- __pyx_v_c_attr = ((xmlAttr *)__pyx_v_c_node);
-
- /* "src/lxml/proxy.pxi":368
- * # remove attribute from ID table (see xmlSetTreeDoc() in libxml2's tree.c)
- * c_attr = <tree.xmlAttr*>c_node
- * if c_attr.atype == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
- * tree.xmlRemoveID(c_source_doc, c_attr)
- * # set C doc link also for attributes
- */
- __pyx_t_3 = ((__pyx_v_c_attr->atype == XML_ATTRIBUTE_ID) != 0);
- if (__pyx_t_3) {
-
- /* "src/lxml/proxy.pxi":369
- * c_attr = <tree.xmlAttr*>c_node
- * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
- * tree.xmlRemoveID(c_source_doc, c_attr) # <<<<<<<<<<<<<<
- * # set C doc link also for attributes
- * c_node.doc = c_doc
- */
- (void)(xmlRemoveID(__pyx_v_c_source_doc, __pyx_v_c_attr));
-
- /* "src/lxml/proxy.pxi":368
- * # remove attribute from ID table (see xmlSetTreeDoc() in libxml2's tree.c)
- * c_attr = <tree.xmlAttr*>c_node
- * if c_attr.atype == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
- * tree.xmlRemoveID(c_source_doc, c_attr)
- * # set C doc link also for attributes
- */
- }
-
- /* "src/lxml/proxy.pxi":371
- * tree.xmlRemoveID(c_source_doc, c_attr)
- * # set C doc link also for attributes
- * c_node.doc = c_doc # <<<<<<<<<<<<<<
- * _fixDocChildren(c_node.children, c_doc)
* c_node = c_node.next
*/
- __pyx_v_c_node->doc = __pyx_v_c_doc;
-
- /* "src/lxml/proxy.pxi":372
- * # set C doc link also for attributes
- * c_node.doc = c_doc
- * _fixDocChildren(c_node.children, c_doc) # <<<<<<<<<<<<<<
- * c_node = c_node.next
- *
- */
- __pyx_f_4lxml_5etree__fixDocChildren(__pyx_v_c_node->children, __pyx_v_c_doc);
+ }
- /* "src/lxml/proxy.pxi":373
- * c_node.doc = c_doc
- * _fixDocChildren(c_node.children, c_doc)
+ /* "src/lxml/proxy.pxi":362
+ * if c_node.ns is not NULL:
+ * _fixCNs(doc, c_start_node, c_node, &c_ns_cache, c_del_ns_list)
* c_node = c_node.next # <<<<<<<<<<<<<<
*
* tree.END_FOR_EACH_FROM(c_element)
__pyx_v_c_node = __pyx_t_11;
}
- /* "src/lxml/proxy.pxi":343
- * c_element.doc = c_doc
+ /* "src/lxml/proxy.pxi":340
*
+ * tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
* if tree._isElementOrXInclude(c_element): # <<<<<<<<<<<<<<
* if hasProxy(c_element):
* proxy_count += 1
*/
}
- /* "src/lxml/proxy.pxi":375
+ /* "src/lxml/proxy.pxi":364
* c_node = c_node.next
*
* tree.END_FOR_EACH_FROM(c_element) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_FROM(__pyx_v_c_element);
- /* "src/lxml/proxy.pxi":378
+ /* "src/lxml/proxy.pxi":367
*
* # free now unused namespace declarations
* if c_del_ns_list is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_del_ns_list != NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":379
+ /* "src/lxml/proxy.pxi":368
* # free now unused namespace declarations
* if c_del_ns_list is not NULL:
* tree.xmlFreeNsList(c_del_ns_list) # <<<<<<<<<<<<<<
*/
xmlFreeNsList(__pyx_v_c_del_ns_list);
- /* "src/lxml/proxy.pxi":378
+ /* "src/lxml/proxy.pxi":367
*
* # free now unused namespace declarations
* if c_del_ns_list is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":382
+ /* "src/lxml/proxy.pxi":371
*
* # cleanup
* if c_ns_cache.ns_map is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_ns_cache.ns_map != NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":383
+ /* "src/lxml/proxy.pxi":372
* # cleanup
* if c_ns_cache.ns_map is not NULL:
* python.lxml_free(c_ns_cache.ns_map) # <<<<<<<<<<<<<<
*/
lxml_free(__pyx_v_c_ns_cache.ns_map);
- /* "src/lxml/proxy.pxi":382
+ /* "src/lxml/proxy.pxi":371
*
* # cleanup
* if c_ns_cache.ns_map is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":386
+ /* "src/lxml/proxy.pxi":375
*
* # 3) fix the names in the tree if we moved it from a different thread
* if doc._c_doc.dict is not c_source_doc.dict: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_doc->_c_doc->dict != __pyx_v_c_source_doc->dict) != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":387
+ /* "src/lxml/proxy.pxi":376
* # 3) fix the names in the tree if we moved it from a different thread
* if doc._c_doc.dict is not c_source_doc.dict:
* fixThreadDictNames(c_start_node, c_source_doc.dict, doc._c_doc.dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNames(__pyx_v_c_start_node, __pyx_v_c_source_doc->dict, __pyx_v_doc->_c_doc->dict);
- /* "src/lxml/proxy.pxi":386
+ /* "src/lxml/proxy.pxi":375
*
* # 3) fix the names in the tree if we moved it from a different thread
* if doc._c_doc.dict is not c_source_doc.dict: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":391
+ /* "src/lxml/proxy.pxi":380
* # 4) fix _Document references
* # (and potentially deallocate the source document)
* if proxy_count > 0: # <<<<<<<<<<<<<<
* if proxy_count == 1 and c_start_node._private is not NULL:
* proxy = getProxy(c_start_node)
*/
- __pyx_t_10 = PyObject_RichCompare(__pyx_v_proxy_count, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 391, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(4, 391, __pyx_L1_error)
+ __pyx_t_10 = PyObject_RichCompare(__pyx_v_proxy_count, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 380, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(4, 380, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":392
+ /* "src/lxml/proxy.pxi":381
* # (and potentially deallocate the source document)
* if proxy_count > 0:
* if proxy_count == 1 and c_start_node._private is not NULL: # <<<<<<<<<<<<<<
* proxy = getProxy(c_start_node)
* if proxy is not None:
*/
- __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_v_proxy_count, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 392, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_v_proxy_count, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 381, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(4, 392, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(4, 381, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_12) {
} else {
__pyx_t_3 = __pyx_t_12;
- goto __pyx_L25_bool_binop_done;
+ goto __pyx_L24_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_c_start_node->_private != NULL) != 0);
__pyx_t_3 = __pyx_t_12;
- __pyx_L25_bool_binop_done:;
+ __pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":393
+ /* "src/lxml/proxy.pxi":382
* if proxy_count > 0:
* if proxy_count == 1 and c_start_node._private is not NULL:
* proxy = getProxy(c_start_node) # <<<<<<<<<<<<<<
* if proxy is not None:
* if proxy._doc is not doc:
*/
- __pyx_t_10 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 393, __pyx_L1_error)
+ __pyx_t_10 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_v_proxy = ((struct LxmlElement *)__pyx_t_10);
__pyx_t_10 = 0;
- /* "src/lxml/proxy.pxi":394
+ /* "src/lxml/proxy.pxi":383
* if proxy_count == 1 and c_start_node._private is not NULL:
* proxy = getProxy(c_start_node)
* if proxy is not None: # <<<<<<<<<<<<<<
__pyx_t_12 = (__pyx_t_3 != 0);
if (__pyx_t_12) {
- /* "src/lxml/proxy.pxi":395
+ /* "src/lxml/proxy.pxi":384
* proxy = getProxy(c_start_node)
* if proxy is not None:
* if proxy._doc is not doc: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_12 != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":396
+ /* "src/lxml/proxy.pxi":385
* if proxy is not None:
* if proxy._doc is not doc:
* proxy._doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_proxy->_doc));
__pyx_v_proxy->_doc = __pyx_v_doc;
- /* "src/lxml/proxy.pxi":395
+ /* "src/lxml/proxy.pxi":384
* proxy = getProxy(c_start_node)
* if proxy is not None:
* if proxy._doc is not doc: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":394
+ /* "src/lxml/proxy.pxi":383
* if proxy_count == 1 and c_start_node._private is not NULL:
* proxy = getProxy(c_start_node)
* if proxy is not None: # <<<<<<<<<<<<<<
* if proxy._doc is not doc:
* proxy._doc = doc
*/
- goto __pyx_L27;
+ goto __pyx_L26;
}
- /* "src/lxml/proxy.pxi":398
+ /* "src/lxml/proxy.pxi":387
* proxy._doc = doc
* else:
* fixElementDocument(c_start_node, doc, proxy_count) # <<<<<<<<<<<<<<
* fixElementDocument(c_start_node, doc, proxy_count)
*/
/*else*/ {
- __pyx_t_13 = __Pyx_PyInt_As_size_t(__pyx_v_proxy_count); if (unlikely((__pyx_t_13 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 398, __pyx_L1_error)
+ __pyx_t_13 = __Pyx_PyInt_As_size_t(__pyx_v_proxy_count); if (unlikely((__pyx_t_13 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 387, __pyx_L1_error)
__pyx_f_4lxml_5etree_fixElementDocument(__pyx_v_c_start_node, __pyx_v_doc, __pyx_t_13);
}
- __pyx_L27:;
+ __pyx_L26:;
- /* "src/lxml/proxy.pxi":392
+ /* "src/lxml/proxy.pxi":381
* # (and potentially deallocate the source document)
* if proxy_count > 0:
* if proxy_count == 1 and c_start_node._private is not NULL: # <<<<<<<<<<<<<<
* proxy = getProxy(c_start_node)
* if proxy is not None:
*/
- goto __pyx_L24;
+ goto __pyx_L23;
}
- /* "src/lxml/proxy.pxi":400
+ /* "src/lxml/proxy.pxi":389
* fixElementDocument(c_start_node, doc, proxy_count)
* else:
* fixElementDocument(c_start_node, doc, proxy_count) # <<<<<<<<<<<<<<
* return 0
*/
/*else*/ {
- __pyx_t_13 = __Pyx_PyInt_As_size_t(__pyx_v_proxy_count); if (unlikely((__pyx_t_13 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 400, __pyx_L1_error)
+ __pyx_t_13 = __Pyx_PyInt_As_size_t(__pyx_v_proxy_count); if (unlikely((__pyx_t_13 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(4, 389, __pyx_L1_error)
__pyx_f_4lxml_5etree_fixElementDocument(__pyx_v_c_start_node, __pyx_v_doc, __pyx_t_13);
}
- __pyx_L24:;
+ __pyx_L23:;
- /* "src/lxml/proxy.pxi":391
+ /* "src/lxml/proxy.pxi":380
* # 4) fix _Document references
* # (and potentially deallocate the source document)
* if proxy_count > 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":402
+ /* "src/lxml/proxy.pxi":391
* fixElementDocument(c_start_node, doc, proxy_count)
*
* return 0 # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/proxy.pxi":405
+/* "src/lxml/proxy.pxi":394
+ *
+ *
+ * cdef void _setTreeDoc(xmlNode* c_node, xmlDoc* c_doc): # <<<<<<<<<<<<<<
+ * """Adaptation of 'xmlSetTreeDoc()' that deep-fix the document links iteratively.
+ * It avoids https://gitlab.gnome.org/GNOME/libxml2/issues/42
+ */
+
+static void __pyx_f_4lxml_5etree__setTreeDoc(xmlNode *__pyx_v_c_node, xmlDoc *__pyx_v_c_doc) {
+ xmlAttr *__pyx_v_c_attr;
+ __Pyx_RefNannyDeclarations
+ int __pyx_t_1;
+ xmlAttr *__pyx_t_2;
+ __Pyx_RefNannySetupContext("_setTreeDoc", 0);
+
+ /* "src/lxml/proxy.pxi":398
+ * It avoids https://gitlab.gnome.org/GNOME/libxml2/issues/42
+ * """
+ * tree.BEGIN_FOR_EACH_FROM(c_node, c_node, 1) # <<<<<<<<<<<<<<
+ * if c_node.type == tree.XML_ELEMENT_NODE:
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ */
+ BEGIN_FOR_EACH_FROM(__pyx_v_c_node, __pyx_v_c_node, 1);
+
+ /* "src/lxml/proxy.pxi":399
+ * """
+ * tree.BEGIN_FOR_EACH_FROM(c_node, c_node, 1)
+ * if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ * while c_attr:
+ */
+ __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
+ if (__pyx_t_1) {
+
+ /* "src/lxml/proxy.pxi":400
+ * tree.BEGIN_FOR_EACH_FROM(c_node, c_node, 1)
+ * if c_node.type == tree.XML_ELEMENT_NODE:
+ * c_attr = <tree.xmlAttr*>c_node.properties # <<<<<<<<<<<<<<
+ * while c_attr:
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
+ */
+ __pyx_v_c_attr = ((xmlAttr *)__pyx_v_c_node->properties);
+
+ /* "src/lxml/proxy.pxi":401
+ * if c_node.type == tree.XML_ELEMENT_NODE:
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ * while c_attr: # <<<<<<<<<<<<<<
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
+ * tree.xmlRemoveID(c_node.doc, c_attr)
+ */
+ while (1) {
+ __pyx_t_1 = (__pyx_v_c_attr != 0);
+ if (!__pyx_t_1) break;
+
+ /* "src/lxml/proxy.pxi":402
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ * while c_attr:
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
+ * tree.xmlRemoveID(c_node.doc, c_attr)
+ * c_attr.doc = c_doc
+ */
+ __pyx_t_1 = ((__pyx_v_c_attr->atype == XML_ATTRIBUTE_ID) != 0);
+ if (__pyx_t_1) {
+
+ /* "src/lxml/proxy.pxi":403
+ * while c_attr:
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
+ * tree.xmlRemoveID(c_node.doc, c_attr) # <<<<<<<<<<<<<<
+ * c_attr.doc = c_doc
+ * _fixDocChildren(c_attr.children, c_doc)
+ */
+ (void)(xmlRemoveID(__pyx_v_c_node->doc, __pyx_v_c_attr));
+
+ /* "src/lxml/proxy.pxi":402
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ * while c_attr:
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
+ * tree.xmlRemoveID(c_node.doc, c_attr)
+ * c_attr.doc = c_doc
+ */
+ }
+
+ /* "src/lxml/proxy.pxi":404
+ * if c_attr.atype == tree.XML_ATTRIBUTE_ID:
+ * tree.xmlRemoveID(c_node.doc, c_attr)
+ * c_attr.doc = c_doc # <<<<<<<<<<<<<<
+ * _fixDocChildren(c_attr.children, c_doc)
+ * c_attr = c_attr.next
+ */
+ __pyx_v_c_attr->doc = __pyx_v_c_doc;
+
+ /* "src/lxml/proxy.pxi":405
+ * tree.xmlRemoveID(c_node.doc, c_attr)
+ * c_attr.doc = c_doc
+ * _fixDocChildren(c_attr.children, c_doc) # <<<<<<<<<<<<<<
+ * c_attr = c_attr.next
+ * # Set doc link for all nodes, not only elements.
+ */
+ __pyx_f_4lxml_5etree__fixDocChildren(__pyx_v_c_attr->children, __pyx_v_c_doc);
+
+ /* "src/lxml/proxy.pxi":406
+ * c_attr.doc = c_doc
+ * _fixDocChildren(c_attr.children, c_doc)
+ * c_attr = c_attr.next # <<<<<<<<<<<<<<
+ * # Set doc link for all nodes, not only elements.
+ * c_node.doc = c_doc
+ */
+ __pyx_t_2 = __pyx_v_c_attr->next;
+ __pyx_v_c_attr = __pyx_t_2;
+ }
+
+ /* "src/lxml/proxy.pxi":399
+ * """
+ * tree.BEGIN_FOR_EACH_FROM(c_node, c_node, 1)
+ * if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * c_attr = <tree.xmlAttr*>c_node.properties
+ * while c_attr:
+ */
+ }
+
+ /* "src/lxml/proxy.pxi":408
+ * c_attr = c_attr.next
+ * # Set doc link for all nodes, not only elements.
+ * c_node.doc = c_doc # <<<<<<<<<<<<<<
+ * tree.END_FOR_EACH_FROM(c_node)
+ *
+ */
+ __pyx_v_c_node->doc = __pyx_v_c_doc;
+
+ /* "src/lxml/proxy.pxi":409
+ * # Set doc link for all nodes, not only elements.
+ * c_node.doc = c_doc
+ * tree.END_FOR_EACH_FROM(c_node) # <<<<<<<<<<<<<<
+ *
+ *
+ */
+ END_FOR_EACH_FROM(__pyx_v_c_node);
+
+ /* "src/lxml/proxy.pxi":394
+ *
+ *
+ * cdef void _setTreeDoc(xmlNode* c_node, xmlDoc* c_doc): # <<<<<<<<<<<<<<
+ * """Adaptation of 'xmlSetTreeDoc()' that deep-fix the document links iteratively.
+ * It avoids https://gitlab.gnome.org/GNOME/libxml2/issues/42
+ */
+
+ /* function exit code */
+ __Pyx_RefNannyFinishContext();
+}
+
+/* "src/lxml/proxy.pxi":412
*
*
* cdef inline void _fixDocChildren(xmlNode* c_child, xmlDoc* c_doc): # <<<<<<<<<<<<<<
xmlNode *__pyx_t_2;
__Pyx_RefNannySetupContext("_fixDocChildren", 0);
- /* "src/lxml/proxy.pxi":406
+ /* "src/lxml/proxy.pxi":413
*
* cdef inline void _fixDocChildren(xmlNode* c_child, xmlDoc* c_doc):
* while c_child: # <<<<<<<<<<<<<<
* c_child.doc = c_doc
- * _fixDocChildren(c_child.children, c_doc)
+ * if c_child.children:
*/
while (1) {
__pyx_t_1 = (__pyx_v_c_child != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/proxy.pxi":407
+ /* "src/lxml/proxy.pxi":414
* cdef inline void _fixDocChildren(xmlNode* c_child, xmlDoc* c_doc):
* while c_child:
* c_child.doc = c_doc # <<<<<<<<<<<<<<
- * _fixDocChildren(c_child.children, c_doc)
- * c_child = c_child.next
+ * if c_child.children:
+ * _fixDocChildren(c_child.children, c_doc)
*/
__pyx_v_c_child->doc = __pyx_v_c_doc;
- /* "src/lxml/proxy.pxi":408
+ /* "src/lxml/proxy.pxi":415
* while c_child:
* c_child.doc = c_doc
- * _fixDocChildren(c_child.children, c_doc) # <<<<<<<<<<<<<<
+ * if c_child.children: # <<<<<<<<<<<<<<
+ * _fixDocChildren(c_child.children, c_doc)
+ * c_child = c_child.next
+ */
+ __pyx_t_1 = (__pyx_v_c_child->children != 0);
+ if (__pyx_t_1) {
+
+ /* "src/lxml/proxy.pxi":416
+ * c_child.doc = c_doc
+ * if c_child.children:
+ * _fixDocChildren(c_child.children, c_doc) # <<<<<<<<<<<<<<
* c_child = c_child.next
*
*/
- __pyx_f_4lxml_5etree__fixDocChildren(__pyx_v_c_child->children, __pyx_v_c_doc);
+ __pyx_f_4lxml_5etree__fixDocChildren(__pyx_v_c_child->children, __pyx_v_c_doc);
- /* "src/lxml/proxy.pxi":409
+ /* "src/lxml/proxy.pxi":415
+ * while c_child:
* c_child.doc = c_doc
- * _fixDocChildren(c_child.children, c_doc)
+ * if c_child.children: # <<<<<<<<<<<<<<
+ * _fixDocChildren(c_child.children, c_doc)
+ * c_child = c_child.next
+ */
+ }
+
+ /* "src/lxml/proxy.pxi":417
+ * if c_child.children:
+ * _fixDocChildren(c_child.children, c_doc)
* c_child = c_child.next # <<<<<<<<<<<<<<
*
*
__pyx_v_c_child = __pyx_t_2;
}
- /* "src/lxml/proxy.pxi":405
+ /* "src/lxml/proxy.pxi":412
*
*
* cdef inline void _fixDocChildren(xmlNode* c_child, xmlDoc* c_doc): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/proxy.pxi":412
+/* "src/lxml/proxy.pxi":420
*
*
* cdef int _fixCNs(_Document doc, xmlNode* c_start_node, xmlNode* c_node, # <<<<<<<<<<<<<<
PyObject *__pyx_t_13 = NULL;
__Pyx_RefNannySetupContext("_fixCNs", 0);
- /* "src/lxml/proxy.pxi":414
+ /* "src/lxml/proxy.pxi":422
* cdef int _fixCNs(_Document doc, xmlNode* c_start_node, xmlNode* c_node,
* _nscache* c_ns_cache, xmlNs* c_del_ns_list) except -1:
* cdef xmlNs* c_ns = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns = NULL;
- /* "src/lxml/proxy.pxi":415
+ /* "src/lxml/proxy.pxi":423
* _nscache* c_ns_cache, xmlNs* c_del_ns_list) except -1:
* cdef xmlNs* c_ns = NULL
* cdef bint is_prefixed_attr = (c_node.type == tree.XML_ATTRIBUTE_NODE and c_node.ns.prefix) # <<<<<<<<<<<<<<
__pyx_L3_bool_binop_done:;
__pyx_v_is_prefixed_attr = __pyx_t_1;
- /* "src/lxml/proxy.pxi":417
+ /* "src/lxml/proxy.pxi":425
* cdef bint is_prefixed_attr = (c_node.type == tree.XML_ATTRIBUTE_NODE and c_node.ns.prefix)
*
* for ns_map in c_ns_cache.ns_map[:c_ns_cache.last]: # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_t_5;
__pyx_v_ns_map = (__pyx_t_3[0]);
- /* "src/lxml/proxy.pxi":418
+ /* "src/lxml/proxy.pxi":426
*
* for ns_map in c_ns_cache.ns_map[:c_ns_cache.last]:
* if c_node.ns is ns_map.old: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node->ns == __pyx_v_ns_map.old) != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":419
+ /* "src/lxml/proxy.pxi":427
* for ns_map in c_ns_cache.ns_map[:c_ns_cache.last]:
* if c_node.ns is ns_map.old:
* if is_prefixed_attr and not ns_map.new.prefix: # <<<<<<<<<<<<<<
__pyx_L9_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":421
+ /* "src/lxml/proxy.pxi":429
* if is_prefixed_attr and not ns_map.new.prefix:
* # avoid dropping prefix from attributes
* continue # <<<<<<<<<<<<<<
*/
goto __pyx_L5_continue;
- /* "src/lxml/proxy.pxi":419
+ /* "src/lxml/proxy.pxi":427
* for ns_map in c_ns_cache.ns_map[:c_ns_cache.last]:
* if c_node.ns is ns_map.old:
* if is_prefixed_attr and not ns_map.new.prefix: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":422
+ /* "src/lxml/proxy.pxi":430
* # avoid dropping prefix from attributes
* continue
* c_ns = ns_map.new # <<<<<<<<<<<<<<
__pyx_t_6 = __pyx_v_ns_map.new;
__pyx_v_c_ns = __pyx_t_6;
- /* "src/lxml/proxy.pxi":423
+ /* "src/lxml/proxy.pxi":431
* continue
* c_ns = ns_map.new
* break # <<<<<<<<<<<<<<
*/
goto __pyx_L6_break;
- /* "src/lxml/proxy.pxi":418
+ /* "src/lxml/proxy.pxi":426
*
* for ns_map in c_ns_cache.ns_map[:c_ns_cache.last]:
* if c_node.ns is ns_map.old: # <<<<<<<<<<<<<<
}
__pyx_L6_break:;
- /* "src/lxml/proxy.pxi":425
+ /* "src/lxml/proxy.pxi":433
* break
*
* if c_ns: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_ns != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":426
+ /* "src/lxml/proxy.pxi":434
*
* if c_ns:
* c_node.ns = c_ns # <<<<<<<<<<<<<<
*/
__pyx_v_c_node->ns = __pyx_v_c_ns;
- /* "src/lxml/proxy.pxi":425
+ /* "src/lxml/proxy.pxi":433
* break
*
* if c_ns: # <<<<<<<<<<<<<<
goto __pyx_L11;
}
- /* "src/lxml/proxy.pxi":430
+ /* "src/lxml/proxy.pxi":438
* # not in cache or not acceptable
* # => find a replacement from this document
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_9);
/*try:*/ {
- /* "src/lxml/proxy.pxi":431
+ /* "src/lxml/proxy.pxi":439
* # => find a replacement from this document
* try:
* c_ns = doc._findOrBuildNodeNs( # <<<<<<<<<<<<<<
* c_start_node, c_node.ns.href, c_node.ns.prefix,
* c_node.type == tree.XML_ATTRIBUTE_NODE)
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_6 == ((xmlNs *)NULL))) __PYX_ERR(4, 431, __pyx_L12_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_6 == ((xmlNs *)NULL))) __PYX_ERR(4, 439, __pyx_L12_error)
__pyx_v_c_ns = __pyx_t_6;
- /* "src/lxml/proxy.pxi":434
+ /* "src/lxml/proxy.pxi":442
* c_start_node, c_node.ns.href, c_node.ns.prefix,
* c_node.type == tree.XML_ATTRIBUTE_NODE)
* c_node.ns = c_ns # <<<<<<<<<<<<<<
*/
__pyx_v_c_node->ns = __pyx_v_c_ns;
- /* "src/lxml/proxy.pxi":435
+ /* "src/lxml/proxy.pxi":443
* c_node.type == tree.XML_ATTRIBUTE_NODE)
* c_node.ns = c_ns
* _appendToNsCache(c_ns_cache, c_node.ns, c_ns) # <<<<<<<<<<<<<<
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, c_ns_cache, c_del_ns_list)
*/
- __pyx_t_10 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(4, 435, __pyx_L12_error)
+ __pyx_t_10 = __pyx_f_4lxml_5etree__appendToNsCache(__pyx_v_c_ns_cache, __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(4, 443, __pyx_L12_error)
- /* "src/lxml/proxy.pxi":430
+ /* "src/lxml/proxy.pxi":438
* # not in cache or not acceptable
* # => find a replacement from this document
* try: # <<<<<<<<<<<<<<
goto __pyx_L17_try_end;
__pyx_L12_error:;
- /* "src/lxml/proxy.pxi":436
+ /* "src/lxml/proxy.pxi":444
* c_node.ns = c_ns
* _appendToNsCache(c_ns_cache, c_node.ns, c_ns)
* except: # <<<<<<<<<<<<<<
*/
/*except:*/ {
__Pyx_AddTraceback("lxml.etree._fixCNs", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0) __PYX_ERR(4, 436, __pyx_L14_except_error)
+ if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0) __PYX_ERR(4, 444, __pyx_L14_except_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GOTREF(__pyx_t_13);
- /* "src/lxml/proxy.pxi":437
+ /* "src/lxml/proxy.pxi":445
* _appendToNsCache(c_ns_cache, c_node.ns, c_ns)
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, c_ns_cache, c_del_ns_list) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__cleanUpFromNamespaceAdaptation(__pyx_v_c_start_node, __pyx_v_c_ns_cache, __pyx_v_c_del_ns_list);
- /* "src/lxml/proxy.pxi":438
+ /* "src/lxml/proxy.pxi":446
* except:
* _cleanUpFromNamespaceAdaptation(c_start_node, c_ns_cache, c_del_ns_list)
* raise # <<<<<<<<<<<<<<
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0;
- __PYX_ERR(4, 438, __pyx_L14_except_error)
+ __PYX_ERR(4, 446, __pyx_L14_except_error)
}
__pyx_L14_except_error:;
- /* "src/lxml/proxy.pxi":430
+ /* "src/lxml/proxy.pxi":438
* # not in cache or not acceptable
* # => find a replacement from this document
* try: # <<<<<<<<<<<<<<
}
__pyx_L11:;
- /* "src/lxml/proxy.pxi":439
+ /* "src/lxml/proxy.pxi":447
* _cleanUpFromNamespaceAdaptation(c_start_node, c_ns_cache, c_del_ns_list)
* raise
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/proxy.pxi":412
+ /* "src/lxml/proxy.pxi":420
*
*
* cdef int _fixCNs(_Document doc, xmlNode* c_start_node, xmlNode* c_node, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/proxy.pxi":442
+/* "src/lxml/proxy.pxi":450
*
*
* cdef void fixElementDocument(xmlNode* c_element, _Document doc, # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("fixElementDocument", 0);
- /* "src/lxml/proxy.pxi":444
+ /* "src/lxml/proxy.pxi":452
* cdef void fixElementDocument(xmlNode* c_element, _Document doc,
* size_t proxy_count):
* cdef xmlNode* c_node = c_element # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_v_c_element;
- /* "src/lxml/proxy.pxi":445
+ /* "src/lxml/proxy.pxi":453
* size_t proxy_count):
* cdef xmlNode* c_node = c_element
* cdef _Element proxy = None # init-to-None required due to fake-loop below # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_proxy = ((struct LxmlElement *)Py_None);
- /* "src/lxml/proxy.pxi":446
+ /* "src/lxml/proxy.pxi":454
* cdef xmlNode* c_node = c_element
* cdef _Element proxy = None # init-to-None required due to fake-loop below
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
- /* "src/lxml/proxy.pxi":447
+ /* "src/lxml/proxy.pxi":455
* cdef _Element proxy = None # init-to-None required due to fake-loop below
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node._private is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node->_private != NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":448
+ /* "src/lxml/proxy.pxi":456
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node._private is not NULL:
* proxy = getProxy(c_node) # <<<<<<<<<<<<<<
* if proxy is not None:
* if proxy._doc is not doc:
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 448, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 456, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_proxy, ((struct LxmlElement *)__pyx_t_2));
__pyx_t_2 = 0;
- /* "src/lxml/proxy.pxi":449
+ /* "src/lxml/proxy.pxi":457
* if c_node._private is not NULL:
* proxy = getProxy(c_node)
* if proxy is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":450
+ /* "src/lxml/proxy.pxi":458
* proxy = getProxy(c_node)
* if proxy is not None:
* if proxy._doc is not doc: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":451
+ /* "src/lxml/proxy.pxi":459
* if proxy is not None:
* if proxy._doc is not doc:
* proxy._doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_proxy->_doc));
__pyx_v_proxy->_doc = __pyx_v_doc;
- /* "src/lxml/proxy.pxi":450
+ /* "src/lxml/proxy.pxi":458
* proxy = getProxy(c_node)
* if proxy is not None:
* if proxy._doc is not doc: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":452
+ /* "src/lxml/proxy.pxi":460
* if proxy._doc is not doc:
* proxy._doc = doc
* proxy_count -= 1 # <<<<<<<<<<<<<<
*/
__pyx_v_proxy_count = (__pyx_v_proxy_count - 1);
- /* "src/lxml/proxy.pxi":453
+ /* "src/lxml/proxy.pxi":461
* proxy._doc = doc
* proxy_count -= 1
* if proxy_count == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_proxy_count == 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":454
+ /* "src/lxml/proxy.pxi":462
* proxy_count -= 1
* if proxy_count == 0:
* return # <<<<<<<<<<<<<<
*/
goto __pyx_L0;
- /* "src/lxml/proxy.pxi":453
+ /* "src/lxml/proxy.pxi":461
* proxy._doc = doc
* proxy_count -= 1
* if proxy_count == 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":449
+ /* "src/lxml/proxy.pxi":457
* if c_node._private is not NULL:
* proxy = getProxy(c_node)
* if proxy is not None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":447
+ /* "src/lxml/proxy.pxi":455
* cdef _Element proxy = None # init-to-None required due to fake-loop below
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node._private is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":455
+ /* "src/lxml/proxy.pxi":463
* if proxy_count == 0:
* return
* tree.END_FOR_EACH_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_FROM(__pyx_v_c_node);
- /* "src/lxml/proxy.pxi":442
+ /* "src/lxml/proxy.pxi":450
*
*
* cdef void fixElementDocument(xmlNode* c_element, _Document doc, # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/proxy.pxi":458
+/* "src/lxml/proxy.pxi":466
*
*
* cdef void fixThreadDictNames(xmlNode* c_element, # <<<<<<<<<<<<<<
int __pyx_t_1;
xmlNode *__pyx_t_2;
- /* "src/lxml/proxy.pxi":465
+ /* "src/lxml/proxy.pxi":473
* # this should only be called when the element is based on a
* # different libxml2 tag name dictionary
* if c_element.type == tree.XML_DOCUMENT_NODE or \ # <<<<<<<<<<<<<<
case XML_DOCUMENT_NODE:
case XML_HTML_DOCUMENT_NODE:
- /* "src/lxml/proxy.pxi":466
+ /* "src/lxml/proxy.pxi":474
* # different libxml2 tag name dictionary
* if c_element.type == tree.XML_DOCUMENT_NODE or \
* c_element.type == tree.XML_HTML_DOCUMENT_NODE: # <<<<<<<<<<<<<<
*/
__pyx_t_1 = 1;
- /* "src/lxml/proxy.pxi":465
+ /* "src/lxml/proxy.pxi":473
* # this should only be called when the element is based on a
* # different libxml2 tag name dictionary
* if c_element.type == tree.XML_DOCUMENT_NODE or \ # <<<<<<<<<<<<<<
}
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":468
+ /* "src/lxml/proxy.pxi":476
* c_element.type == tree.XML_HTML_DOCUMENT_NODE:
* # may define "xml" namespace
* fixThreadDictNsForNode(c_element, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNsForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":469
+ /* "src/lxml/proxy.pxi":477
* # may define "xml" namespace
* fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
* if c_element.doc.extSubset: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_element->doc->extSubset != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":470
+ /* "src/lxml/proxy.pxi":478
* fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
* if c_element.doc.extSubset:
* fixThreadDictNamesForDtd(c_element.doc.extSubset, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNamesForDtd(__pyx_v_c_element->doc->extSubset, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":469
+ /* "src/lxml/proxy.pxi":477
* # may define "xml" namespace
* fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
* if c_element.doc.extSubset: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":471
+ /* "src/lxml/proxy.pxi":479
* if c_element.doc.extSubset:
* fixThreadDictNamesForDtd(c_element.doc.extSubset, c_src_dict, c_dict)
* if c_element.doc.intSubset: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_element->doc->intSubset != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":472
+ /* "src/lxml/proxy.pxi":480
* fixThreadDictNamesForDtd(c_element.doc.extSubset, c_src_dict, c_dict)
* if c_element.doc.intSubset:
* fixThreadDictNamesForDtd(c_element.doc.intSubset, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNamesForDtd(__pyx_v_c_element->doc->intSubset, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":471
+ /* "src/lxml/proxy.pxi":479
* if c_element.doc.extSubset:
* fixThreadDictNamesForDtd(c_element.doc.extSubset, c_src_dict, c_dict)
* if c_element.doc.intSubset: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":473
+ /* "src/lxml/proxy.pxi":481
* if c_element.doc.intSubset:
* fixThreadDictNamesForDtd(c_element.doc.intSubset, c_src_dict, c_dict)
* c_element = c_element.children # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_c_element->children;
__pyx_v_c_element = __pyx_t_2;
- /* "src/lxml/proxy.pxi":474
+ /* "src/lxml/proxy.pxi":482
* fixThreadDictNamesForDtd(c_element.doc.intSubset, c_src_dict, c_dict)
* c_element = c_element.children
* while c_element is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_element != NULL) != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/proxy.pxi":475
+ /* "src/lxml/proxy.pxi":483
* c_element = c_element.children
* while c_element is not NULL:
* fixThreadDictNamesForNode(c_element, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNamesForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":476
+ /* "src/lxml/proxy.pxi":484
* while c_element is not NULL:
* fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
* c_element = c_element.next # <<<<<<<<<<<<<<
__pyx_v_c_element = __pyx_t_2;
}
- /* "src/lxml/proxy.pxi":465
+ /* "src/lxml/proxy.pxi":473
* # this should only be called when the element is based on a
* # different libxml2 tag name dictionary
* if c_element.type == tree.XML_DOCUMENT_NODE or \ # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/proxy.pxi":477
+ /* "src/lxml/proxy.pxi":485
* fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
* c_element = c_element.next
* elif tree._isElementOrXInclude(c_element): # <<<<<<<<<<<<<<
__pyx_t_1 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":478
+ /* "src/lxml/proxy.pxi":486
* c_element = c_element.next
* elif tree._isElementOrXInclude(c_element):
* fixThreadDictNamesForNode(c_element, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNamesForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":477
+ /* "src/lxml/proxy.pxi":485
* fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
* c_element = c_element.next
* elif tree._isElementOrXInclude(c_element): # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "src/lxml/proxy.pxi":458
+ /* "src/lxml/proxy.pxi":466
*
*
* cdef void fixThreadDictNames(xmlNode* c_element, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":481
+/* "src/lxml/proxy.pxi":489
*
*
* cdef inline void _fixThreadDictPtr(const_xmlChar** c_ptr, # <<<<<<<<<<<<<<
int __pyx_t_1;
int __pyx_t_2;
- /* "src/lxml/proxy.pxi":484
+ /* "src/lxml/proxy.pxi":492
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* c_str = c_ptr[0] # <<<<<<<<<<<<<<
*/
__pyx_v_c_str = (__pyx_v_c_ptr[0]);
- /* "src/lxml/proxy.pxi":485
+ /* "src/lxml/proxy.pxi":493
* tree.xmlDict* c_dict) nogil:
* c_str = c_ptr[0]
* if c_str and c_src_dict and tree.xmlDictOwns(c_src_dict, c_str): # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":487
+ /* "src/lxml/proxy.pxi":495
* if c_str and c_src_dict and tree.xmlDictOwns(c_src_dict, c_str):
* # return value can be NULL on memory error, but we don't handle that here
* c_str = tree.xmlDictLookup(c_dict, c_str, -1) # <<<<<<<<<<<<<<
*/
__pyx_v_c_str = xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_str, -1);
- /* "src/lxml/proxy.pxi":488
+ /* "src/lxml/proxy.pxi":496
* # return value can be NULL on memory error, but we don't handle that here
* c_str = tree.xmlDictLookup(c_dict, c_str, -1)
* if c_str: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_c_str != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":489
+ /* "src/lxml/proxy.pxi":497
* c_str = tree.xmlDictLookup(c_dict, c_str, -1)
* if c_str:
* c_ptr[0] = c_str # <<<<<<<<<<<<<<
*/
(__pyx_v_c_ptr[0]) = __pyx_v_c_str;
- /* "src/lxml/proxy.pxi":488
+ /* "src/lxml/proxy.pxi":496
* # return value can be NULL on memory error, but we don't handle that here
* c_str = tree.xmlDictLookup(c_dict, c_str, -1)
* if c_str: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":485
+ /* "src/lxml/proxy.pxi":493
* tree.xmlDict* c_dict) nogil:
* c_str = c_ptr[0]
* if c_str and c_src_dict and tree.xmlDictOwns(c_src_dict, c_str): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":481
+ /* "src/lxml/proxy.pxi":489
*
*
* cdef inline void _fixThreadDictPtr(const_xmlChar** c_ptr, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":492
+/* "src/lxml/proxy.pxi":500
*
*
* cdef void fixThreadDictNamesForNode(xmlNode* c_element, # <<<<<<<<<<<<<<
static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_element, xmlDict *__pyx_v_c_src_dict, xmlDict *__pyx_v_c_dict) {
xmlNode *__pyx_v_c_node;
- /* "src/lxml/proxy.pxi":495
+ /* "src/lxml/proxy.pxi":503
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* cdef xmlNode* c_node = c_element # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_v_c_element;
- /* "src/lxml/proxy.pxi":496
+ /* "src/lxml/proxy.pxi":504
* tree.xmlDict* c_dict) nogil:
* cdef xmlNode* c_node = c_element
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
- /* "src/lxml/proxy.pxi":497
+ /* "src/lxml/proxy.pxi":505
* cdef xmlNode* c_node = c_element
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START): # <<<<<<<<<<<<<<
case XML_ELEMENT_NODE:
case XML_XINCLUDE_START:
- /* "src/lxml/proxy.pxi":498
+ /* "src/lxml/proxy.pxi":506
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):
* fixThreadDictNamesForAttributes( # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(__pyx_v_c_node->properties, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":500
+ /* "src/lxml/proxy.pxi":508
* fixThreadDictNamesForAttributes(
* c_node.properties, c_src_dict, c_dict)
* fixThreadDictNsForNode(c_node, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictNsForNode(__pyx_v_c_node, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":501
+ /* "src/lxml/proxy.pxi":509
* c_node.properties, c_src_dict, c_dict)
* fixThreadDictNsForNode(c_node, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_node->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":497
+ /* "src/lxml/proxy.pxi":505
* cdef xmlNode* c_node = c_element
* tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
* if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START): # <<<<<<<<<<<<<<
break;
case XML_TEXT_NODE:
- /* "src/lxml/proxy.pxi":504
+ /* "src/lxml/proxy.pxi":512
* elif c_node.type == tree.XML_TEXT_NODE:
* # libxml2's SAX2 parser interns some indentation space
* fixThreadDictContentForNode(c_node, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictContentForNode(__pyx_v_c_node, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":502
+ /* "src/lxml/proxy.pxi":510
* fixThreadDictNsForNode(c_node, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict)
* elif c_node.type == tree.XML_TEXT_NODE: # <<<<<<<<<<<<<<
break;
case XML_COMMENT_NODE:
- /* "src/lxml/proxy.pxi":505
+ /* "src/lxml/proxy.pxi":513
* # libxml2's SAX2 parser interns some indentation space
* fixThreadDictContentForNode(c_node, c_src_dict, c_dict)
* elif c_node.type == tree.XML_COMMENT_NODE: # <<<<<<<<<<<<<<
break;
default:
- /* "src/lxml/proxy.pxi":508
+ /* "src/lxml/proxy.pxi":516
* pass # don't touch c_node.name
* else:
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
break;
}
- /* "src/lxml/proxy.pxi":509
+ /* "src/lxml/proxy.pxi":517
* else:
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict)
* tree.END_FOR_EACH_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_FROM(__pyx_v_c_node);
- /* "src/lxml/proxy.pxi":492
+ /* "src/lxml/proxy.pxi":500
*
*
* cdef void fixThreadDictNamesForNode(xmlNode* c_element, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":512
+/* "src/lxml/proxy.pxi":520
*
*
* cdef inline void fixThreadDictNamesForAttributes(tree.xmlAttr* c_attr, # <<<<<<<<<<<<<<
int __pyx_t_2;
xmlNode *__pyx_t_3;
- /* "src/lxml/proxy.pxi":516
+ /* "src/lxml/proxy.pxi":524
* tree.xmlDict* c_dict) nogil:
* cdef xmlNode* c_child
* cdef xmlNode* c_node = <xmlNode*>c_attr # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = ((xmlNode *)__pyx_v_c_attr);
- /* "src/lxml/proxy.pxi":517
+ /* "src/lxml/proxy.pxi":525
* cdef xmlNode* c_child
* cdef xmlNode* c_node = <xmlNode*>c_attr
* while c_node is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/proxy.pxi":518
+ /* "src/lxml/proxy.pxi":526
* cdef xmlNode* c_node = <xmlNode*>c_attr
* while c_node is not NULL:
* if c_node.type not in (tree.XML_TEXT_NODE, tree.XML_COMMENT_NODE): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/proxy.pxi":519
+ /* "src/lxml/proxy.pxi":527
* while c_node is not NULL:
* if c_node.type not in (tree.XML_TEXT_NODE, tree.XML_COMMENT_NODE):
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_node->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":518
+ /* "src/lxml/proxy.pxi":526
* cdef xmlNode* c_node = <xmlNode*>c_attr
* while c_node is not NULL:
* if c_node.type not in (tree.XML_TEXT_NODE, tree.XML_COMMENT_NODE): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":521
+ /* "src/lxml/proxy.pxi":529
* _fixThreadDictPtr(&c_node.name, c_src_dict, c_dict)
* # libxml2 keeps some (!) attribute values in the dict
* c_child = c_node.children # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_c_node->children;
__pyx_v_c_child = __pyx_t_3;
- /* "src/lxml/proxy.pxi":522
+ /* "src/lxml/proxy.pxi":530
* # libxml2 keeps some (!) attribute values in the dict
* c_child = c_node.children
* while c_child is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_c_child != NULL) != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/proxy.pxi":523
+ /* "src/lxml/proxy.pxi":531
* c_child = c_node.children
* while c_child is not NULL:
* fixThreadDictContentForNode(c_child, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_fixThreadDictContentForNode(__pyx_v_c_child, __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":524
+ /* "src/lxml/proxy.pxi":532
* while c_child is not NULL:
* fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
* c_child = c_child.next # <<<<<<<<<<<<<<
__pyx_v_c_child = __pyx_t_3;
}
- /* "src/lxml/proxy.pxi":525
+ /* "src/lxml/proxy.pxi":533
* fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
* c_child = c_child.next
* c_node = c_node.next # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_t_3;
}
- /* "src/lxml/proxy.pxi":512
+ /* "src/lxml/proxy.pxi":520
*
*
* cdef inline void fixThreadDictNamesForAttributes(tree.xmlAttr* c_attr, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":528
+/* "src/lxml/proxy.pxi":536
*
*
* cdef inline void fixThreadDictContentForNode(xmlNode* c_node, # <<<<<<<<<<<<<<
int __pyx_t_1;
int __pyx_t_2;
- /* "src/lxml/proxy.pxi":531
+ /* "src/lxml/proxy.pxi":539
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* if c_node.content is not NULL and \ # <<<<<<<<<<<<<<
goto __pyx_L4_bool_binop_done;
}
- /* "src/lxml/proxy.pxi":532
+ /* "src/lxml/proxy.pxi":540
* tree.xmlDict* c_dict) nogil:
* if c_node.content is not NULL and \
* c_node.content is not <xmlChar*>&c_node.properties: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
- /* "src/lxml/proxy.pxi":531
+ /* "src/lxml/proxy.pxi":539
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* if c_node.content is not NULL and \ # <<<<<<<<<<<<<<
*/
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":533
+ /* "src/lxml/proxy.pxi":541
* if c_node.content is not NULL and \
* c_node.content is not <xmlChar*>&c_node.properties:
* if tree.xmlDictOwns(c_src_dict, c_node.content): # <<<<<<<<<<<<<<
__pyx_t_1 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->content) != 0);
if (__pyx_t_1) {
- /* "src/lxml/proxy.pxi":535
+ /* "src/lxml/proxy.pxi":543
* if tree.xmlDictOwns(c_src_dict, c_node.content):
* # result can be NULL on memory error, but we don't handle that here
* c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node->content = ((xmlChar *)xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_node->content, -1));
- /* "src/lxml/proxy.pxi":533
+ /* "src/lxml/proxy.pxi":541
* if c_node.content is not NULL and \
* c_node.content is not <xmlChar*>&c_node.properties:
* if tree.xmlDictOwns(c_src_dict, c_node.content): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":531
+ /* "src/lxml/proxy.pxi":539
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* if c_node.content is not NULL and \ # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":528
+ /* "src/lxml/proxy.pxi":536
*
*
* cdef inline void fixThreadDictContentForNode(xmlNode* c_node, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":538
+/* "src/lxml/proxy.pxi":546
*
*
* cdef inline void fixThreadDictNsForNode(xmlNode* c_node, # <<<<<<<<<<<<<<
xmlNs *__pyx_t_1;
int __pyx_t_2;
- /* "src/lxml/proxy.pxi":541
+ /* "src/lxml/proxy.pxi":549
* tree.xmlDict* c_src_dict,
* tree.xmlDict* c_dict) nogil:
* cdef xmlNs* c_ns = c_node.nsDef # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_node->nsDef;
__pyx_v_c_ns = __pyx_t_1;
- /* "src/lxml/proxy.pxi":542
+ /* "src/lxml/proxy.pxi":550
* tree.xmlDict* c_dict) nogil:
* cdef xmlNs* c_ns = c_node.nsDef
* while c_ns is not NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_c_ns != NULL) != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/proxy.pxi":543
+ /* "src/lxml/proxy.pxi":551
* cdef xmlNs* c_ns = c_node.nsDef
* while c_ns is not NULL:
* _fixThreadDictPtr(&c_ns.href, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_ns->href), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":544
+ /* "src/lxml/proxy.pxi":552
* while c_ns is not NULL:
* _fixThreadDictPtr(&c_ns.href, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_ns.prefix, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_ns->prefix), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":545
+ /* "src/lxml/proxy.pxi":553
* _fixThreadDictPtr(&c_ns.href, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_ns.prefix, c_src_dict, c_dict)
* c_ns = c_ns.next # <<<<<<<<<<<<<<
__pyx_v_c_ns = __pyx_t_1;
}
- /* "src/lxml/proxy.pxi":538
+ /* "src/lxml/proxy.pxi":546
*
*
* cdef inline void fixThreadDictNsForNode(xmlNode* c_node, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":548
+/* "src/lxml/proxy.pxi":556
*
*
* cdef void fixThreadDictNamesForDtd(tree.xmlDtd* c_dtd, # <<<<<<<<<<<<<<
int __pyx_t_2;
xmlAttribute *__pyx_t_3;
- /* "src/lxml/proxy.pxi":556
+ /* "src/lxml/proxy.pxi":564
* cdef tree.xmlEntity* c_entity
*
* c_node = c_dtd.children # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_dtd->children;
__pyx_v_c_node = __pyx_t_1;
- /* "src/lxml/proxy.pxi":557
+ /* "src/lxml/proxy.pxi":565
*
* c_node = c_dtd.children
* while c_node: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_node != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/proxy.pxi":558
+ /* "src/lxml/proxy.pxi":566
* c_node = c_dtd.children
* while c_node:
* if c_node.type == tree.XML_ELEMENT_DECL: # <<<<<<<<<<<<<<
switch (__pyx_v_c_node->type) {
case XML_ELEMENT_DECL:
- /* "src/lxml/proxy.pxi":559
+ /* "src/lxml/proxy.pxi":567
* while c_node:
* if c_node.type == tree.XML_ELEMENT_DECL:
* c_element = <tree.xmlElement*>c_node # <<<<<<<<<<<<<<
*/
__pyx_v_c_element = ((xmlElement *)__pyx_v_c_node);
- /* "src/lxml/proxy.pxi":560
+ /* "src/lxml/proxy.pxi":568
* if c_node.type == tree.XML_ELEMENT_DECL:
* c_element = <tree.xmlElement*>c_node
* if c_element.content: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_element->content != 0);
if (__pyx_t_2) {
- /* "src/lxml/proxy.pxi":561
+ /* "src/lxml/proxy.pxi":569
* c_element = <tree.xmlElement*>c_node
* if c_element.content:
* _fixThreadDictPtr(&c_element.content.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_element->content->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":562
+ /* "src/lxml/proxy.pxi":570
* if c_element.content:
* _fixThreadDictPtr(&c_element.content.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_element->content->prefix), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":560
+ /* "src/lxml/proxy.pxi":568
* if c_node.type == tree.XML_ELEMENT_DECL:
* c_element = <tree.xmlElement*>c_node
* if c_element.content: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":563
+ /* "src/lxml/proxy.pxi":571
* _fixThreadDictPtr(&c_element.content.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict)
* c_attribute = c_element.attributes # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_c_element->attributes;
__pyx_v_c_attribute = __pyx_t_3;
- /* "src/lxml/proxy.pxi":564
+ /* "src/lxml/proxy.pxi":572
* _fixThreadDictPtr(&c_element.content.prefix, c_src_dict, c_dict)
* c_attribute = c_element.attributes
* while c_attribute: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_c_attribute != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/proxy.pxi":565
+ /* "src/lxml/proxy.pxi":573
* c_attribute = c_element.attributes
* while c_attribute:
* _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->defaultValue), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":566
+ /* "src/lxml/proxy.pxi":574
* while c_attribute:
* _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":567
+ /* "src/lxml/proxy.pxi":575
* _fixThreadDictPtr(&c_attribute.defaultValue, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->prefix), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":568
+ /* "src/lxml/proxy.pxi":576
* _fixThreadDictPtr(&c_attribute.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_attribute->elem), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":569
+ /* "src/lxml/proxy.pxi":577
* _fixThreadDictPtr(&c_attribute.prefix, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict)
* c_attribute = c_attribute.nexth # <<<<<<<<<<<<<<
__pyx_v_c_attribute = __pyx_t_3;
}
- /* "src/lxml/proxy.pxi":558
+ /* "src/lxml/proxy.pxi":566
* c_node = c_dtd.children
* while c_node:
* if c_node.type == tree.XML_ELEMENT_DECL: # <<<<<<<<<<<<<<
break;
case XML_ENTITY_DECL:
- /* "src/lxml/proxy.pxi":571
+ /* "src/lxml/proxy.pxi":579
* c_attribute = c_attribute.nexth
* elif c_node.type == tree.XML_ENTITY_DECL:
* c_entity = <tree.xmlEntity*>c_node # <<<<<<<<<<<<<<
*/
__pyx_v_c_entity = ((xmlEntity *)__pyx_v_c_node);
- /* "src/lxml/proxy.pxi":572
+ /* "src/lxml/proxy.pxi":580
* elif c_node.type == tree.XML_ENTITY_DECL:
* c_entity = <tree.xmlEntity*>c_node
* _fixThreadDictPtr(&c_entity.name, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_entity->name), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":573
+ /* "src/lxml/proxy.pxi":581
* c_entity = <tree.xmlEntity*>c_node
* _fixThreadDictPtr(&c_entity.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_entity.ExternalID, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_entity->ExternalID), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":574
+ /* "src/lxml/proxy.pxi":582
* _fixThreadDictPtr(&c_entity.name, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_entity.ExternalID, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_entity.SystemID, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr((&__pyx_v_c_entity->SystemID), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":575
+ /* "src/lxml/proxy.pxi":583
* _fixThreadDictPtr(&c_entity.ExternalID, c_src_dict, c_dict)
* _fixThreadDictPtr(&c_entity.SystemID, c_src_dict, c_dict)
* _fixThreadDictPtr(<const_xmlChar**>&c_entity.content, c_src_dict, c_dict) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__fixThreadDictPtr(((const xmlChar **)(&__pyx_v_c_entity->content)), __pyx_v_c_src_dict, __pyx_v_c_dict);
- /* "src/lxml/proxy.pxi":570
+ /* "src/lxml/proxy.pxi":578
* _fixThreadDictPtr(&c_attribute.elem, c_src_dict, c_dict)
* c_attribute = c_attribute.nexth
* elif c_node.type == tree.XML_ENTITY_DECL: # <<<<<<<<<<<<<<
default: break;
}
- /* "src/lxml/proxy.pxi":576
+ /* "src/lxml/proxy.pxi":584
* _fixThreadDictPtr(&c_entity.SystemID, c_src_dict, c_dict)
* _fixThreadDictPtr(<const_xmlChar**>&c_entity.content, c_src_dict, c_dict)
* c_node = c_node.next # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_t_1;
}
- /* "src/lxml/proxy.pxi":548
+ /* "src/lxml/proxy.pxi":556
*
*
* cdef void fixThreadDictNamesForDtd(tree.xmlDtd* c_dtd, # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/proxy.pxi":582
+/* "src/lxml/proxy.pxi":590
* # adopt an xmlDoc from an external libxml2 document source
*
* cdef _Document _adoptForeignDoc(xmlDoc* c_doc, _BaseParser parser=None, bint is_owned=True): # <<<<<<<<<<<<<<
}
}
- /* "src/lxml/proxy.pxi":587
+ /* "src/lxml/proxy.pxi":595
* dereference into lxml proxy objects.
* """
* if c_doc is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/proxy.pxi":588
+ /* "src/lxml/proxy.pxi":596
* """
* if c_doc is NULL:
* raise ValueError("Illegal document provided: NULL") # <<<<<<<<<<<<<<
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE):
* doc_type = c_doc.type
*/
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 588, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 596, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_Raise(__pyx_t_2, 0, 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __PYX_ERR(4, 588, __pyx_L1_error)
+ __PYX_ERR(4, 596, __pyx_L1_error)
- /* "src/lxml/proxy.pxi":587
+ /* "src/lxml/proxy.pxi":595
* dereference into lxml proxy objects.
* """
* if c_doc is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":589
+ /* "src/lxml/proxy.pxi":597
* if c_doc is NULL:
* raise ValueError("Illegal document provided: NULL")
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":590
+ /* "src/lxml/proxy.pxi":598
* raise ValueError("Illegal document provided: NULL")
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE):
* doc_type = c_doc.type # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_c_doc->type;
__pyx_v_doc_type = __pyx_t_4;
- /* "src/lxml/proxy.pxi":591
+ /* "src/lxml/proxy.pxi":599
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE):
* doc_type = c_doc.type
* if is_owned: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_owned != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":592
+ /* "src/lxml/proxy.pxi":600
* doc_type = c_doc.type
* if is_owned:
* tree.xmlFreeDoc(c_doc) # <<<<<<<<<<<<<<
*/
xmlFreeDoc(__pyx_v_c_doc);
- /* "src/lxml/proxy.pxi":591
+ /* "src/lxml/proxy.pxi":599
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE):
* doc_type = c_doc.type
* if is_owned: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":593
+ /* "src/lxml/proxy.pxi":601
* if is_owned:
* tree.xmlFreeDoc(c_doc)
* raise ValueError(f"Illegal document provided: expected XML or HTML, found {doc_type}") # <<<<<<<<<<<<<<
*
* cdef xmlNode* c_node = <xmlNode*>c_doc
*/
- __pyx_t_2 = __Pyx_PyUnicode_From_xmlElementType(__pyx_v_doc_type, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 593, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_From_xmlElementType(__pyx_v_doc_type, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 601, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Illegal_document_provided_expect, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 593, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Illegal_document_provided_expect, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 601, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 593, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 601, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_t_2, 0, 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __PYX_ERR(4, 593, __pyx_L1_error)
+ __PYX_ERR(4, 601, __pyx_L1_error)
- /* "src/lxml/proxy.pxi":589
+ /* "src/lxml/proxy.pxi":597
* if c_doc is NULL:
* raise ValueError("Illegal document provided: NULL")
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/proxy.pxi":595
+ /* "src/lxml/proxy.pxi":603
* raise ValueError(f"Illegal document provided: expected XML or HTML, found {doc_type}")
*
* cdef xmlNode* c_node = <xmlNode*>c_doc # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = ((xmlNode *)__pyx_v_c_doc);
- /* "src/lxml/proxy.pxi":597
+ /* "src/lxml/proxy.pxi":605
* cdef xmlNode* c_node = <xmlNode*>c_doc
*
* if is_owned: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_owned != 0);
if (__pyx_t_3) {
- /* "src/lxml/proxy.pxi":598
+ /* "src/lxml/proxy.pxi":606
*
* if is_owned:
* tree.BEGIN_FOR_EACH_FROM(<xmlNode*>c_doc, c_node, 1) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_FROM(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node, 1);
- /* "src/lxml/proxy.pxi":599
+ /* "src/lxml/proxy.pxi":607
* if is_owned:
* tree.BEGIN_FOR_EACH_FROM(<xmlNode*>c_doc, c_node, 1)
* c_node._private = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_c_node->_private = NULL;
- /* "src/lxml/proxy.pxi":600
+ /* "src/lxml/proxy.pxi":608
* tree.BEGIN_FOR_EACH_FROM(<xmlNode*>c_doc, c_node, 1)
* c_node._private = NULL
* tree.END_FOR_EACH_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_FROM(__pyx_v_c_node);
- /* "src/lxml/proxy.pxi":597
+ /* "src/lxml/proxy.pxi":605
* cdef xmlNode* c_node = <xmlNode*>c_doc
*
* if is_owned: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/proxy.pxi":603
+ /* "src/lxml/proxy.pxi":611
* else:
* # create a fresh copy that lxml owns
* c_doc = tree.xmlCopyDoc(c_doc, 1) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_c_doc = xmlCopyDoc(__pyx_v_c_doc, 1);
- /* "src/lxml/proxy.pxi":604
+ /* "src/lxml/proxy.pxi":612
* # create a fresh copy that lxml owns
* c_doc = tree.xmlCopyDoc(c_doc, 1)
* if c_doc is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_doc == NULL) != 0);
if (unlikely(__pyx_t_3)) {
- /* "src/lxml/proxy.pxi":605
+ /* "src/lxml/proxy.pxi":613
* c_doc = tree.xmlCopyDoc(c_doc, 1)
* if c_doc is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
*
* return _documentFactory(c_doc, parser)
*/
- PyErr_NoMemory(); __PYX_ERR(4, 605, __pyx_L1_error)
+ PyErr_NoMemory(); __PYX_ERR(4, 613, __pyx_L1_error)
- /* "src/lxml/proxy.pxi":604
+ /* "src/lxml/proxy.pxi":612
* # create a fresh copy that lxml owns
* c_doc = tree.xmlCopyDoc(c_doc, 1)
* if c_doc is NULL: # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "src/lxml/proxy.pxi":607
+ /* "src/lxml/proxy.pxi":615
* raise MemoryError()
*
* return _documentFactory(c_doc, parser) # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 607, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 615, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = ((struct LxmlDocument *)__pyx_t_2);
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/proxy.pxi":582
+ /* "src/lxml/proxy.pxi":590
* # adopt an xmlDoc from an external libxml2 document source
*
* cdef _Document _adoptForeignDoc(xmlDoc* c_doc, _BaseParser parser=None, bint is_owned=True): # <<<<<<<<<<<<<<
*
*
* cdef int _linkChild(xmlNode* c_parent, xmlNode* c_node) except -1: # <<<<<<<<<<<<<<
- * """Simple version of 'xmlAddChild()' that does not deep-fix the document links.
+ * """Adaptation of 'xmlAddChild()' that deep-fix the document links iteratively.
* """
*/
__Pyx_RefNannySetupContext("_linkChild", 0);
/* "src/lxml/apihelpers.pxi":1274
- * """Simple version of 'xmlAddChild()' that does not deep-fix the document links.
+ * """Adaptation of 'xmlAddChild()' that deep-fix the document links iteratively.
* """
* assert _isElement(c_node) # <<<<<<<<<<<<<<
* c_node.parent = c_parent
* c_node.prev = c_parent.last
* c_parent.last.next = c_node # <<<<<<<<<<<<<<
* c_parent.last = c_node
- * return 0
+ *
*/
__pyx_v_c_parent->last->next = __pyx_v_c_node;
* c_node.prev = c_parent.last
* c_parent.last.next = c_node
* c_parent.last = c_node # <<<<<<<<<<<<<<
- * return 0
*
+ * _setTreeDoc(c_node, c_parent.doc)
*/
__pyx_v_c_parent->last = __pyx_v_c_node;
}
__pyx_L3:;
- /* "src/lxml/apihelpers.pxi":1282
- * c_parent.last.next = c_node
+ /* "src/lxml/apihelpers.pxi":1283
* c_parent.last = c_node
+ *
+ * _setTreeDoc(c_node, c_parent.doc) # <<<<<<<<<<<<<<
+ * return 0
+ *
+ */
+ __pyx_f_4lxml_5etree__setTreeDoc(__pyx_v_c_node, __pyx_v_c_parent->doc);
+
+ /* "src/lxml/apihelpers.pxi":1284
+ *
+ * _setTreeDoc(c_node, c_parent.doc)
* return 0 # <<<<<<<<<<<<<<
*
*
*
*
* cdef int _linkChild(xmlNode* c_parent, xmlNode* c_node) except -1: # <<<<<<<<<<<<<<
- * """Simple version of 'xmlAddChild()' that does not deep-fix the document links.
+ * """Adaptation of 'xmlAddChild()' that deep-fix the document links iteratively.
* """
*/
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1285
+/* "src/lxml/apihelpers.pxi":1287
*
*
* cdef int _appendChild(_Element parent, _Element child) except -1: # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("_appendChild", 0);
- /* "src/lxml/apihelpers.pxi":1288
+ /* "src/lxml/apihelpers.pxi":1290
* u"""Append a new child to a parent element.
* """
* c_node = child._c_node # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_child->_c_node;
__pyx_v_c_node = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1289
+ /* "src/lxml/apihelpers.pxi":1291
* """
* c_node = child._c_node
* c_source_doc = c_node.doc # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_c_node->doc;
__pyx_v_c_source_doc = __pyx_t_2;
- /* "src/lxml/apihelpers.pxi":1291
+ /* "src/lxml/apihelpers.pxi":1293
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
if (unlikely(__pyx_t_3)) {
- /* "src/lxml/apihelpers.pxi":1292
+ /* "src/lxml/apihelpers.pxi":1294
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node):
* raise ValueError("cannot append parent to itself") # <<<<<<<<<<<<<<
* # store possible text node
* c_next = c_node.next
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1292, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(5, 1292, __pyx_L1_error)
+ __PYX_ERR(5, 1294, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1291
+ /* "src/lxml/apihelpers.pxi":1293
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1294
+ /* "src/lxml/apihelpers.pxi":1296
* raise ValueError("cannot append parent to itself")
* # store possible text node
* c_next = c_node.next # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_node->next;
__pyx_v_c_next = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1296
+ /* "src/lxml/apihelpers.pxi":1298
* c_next = c_node.next
* # move node itself
* tree.xmlUnlinkNode(c_node) # <<<<<<<<<<<<<<
*/
xmlUnlinkNode(__pyx_v_c_node);
- /* "src/lxml/apihelpers.pxi":1298
+ /* "src/lxml/apihelpers.pxi":1300
* tree.xmlUnlinkNode(c_node)
* # do not call xmlAddChild() here since it would deep-traverse the tree
* _linkChild(parent._c_node, c_node) # <<<<<<<<<<<<<<
* _moveTail(c_next, c_node)
* # uh oh, elements may be pointing to different doc when
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1298, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1300, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1299
+ /* "src/lxml/apihelpers.pxi":1301
* # do not call xmlAddChild() here since it would deep-traverse the tree
* _linkChild(parent._c_node, c_node)
* _moveTail(c_next, c_node) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
- /* "src/lxml/apihelpers.pxi":1302
+ /* "src/lxml/apihelpers.pxi":1304
* # uh oh, elements may be pointing to different doc when
* # parent element has moved; change them too..
* moveNodeToDocument(parent._doc, c_source_doc, c_node) # <<<<<<<<<<<<<<
*/
__pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1302, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1304, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1303
+ /* "src/lxml/apihelpers.pxi":1305
* # parent element has moved; change them too..
* moveNodeToDocument(parent._doc, c_source_doc, c_node)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1285
+ /* "src/lxml/apihelpers.pxi":1287
*
*
* cdef int _appendChild(_Element parent, _Element child) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1305
+/* "src/lxml/apihelpers.pxi":1307
* return 0
*
* cdef int _prependChild(_Element parent, _Element child) except -1: # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("_prependChild", 0);
- /* "src/lxml/apihelpers.pxi":1308
+ /* "src/lxml/apihelpers.pxi":1310
* u"""Prepend a new child to a parent element.
* """
* c_node = child._c_node # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_child->_c_node;
__pyx_v_c_node = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1309
+ /* "src/lxml/apihelpers.pxi":1311
* """
* c_node = child._c_node
* c_source_doc = c_node.doc # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_c_node->doc;
__pyx_v_c_source_doc = __pyx_t_2;
- /* "src/lxml/apihelpers.pxi":1311
+ /* "src/lxml/apihelpers.pxi":1313
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_parent->_c_node) != 0);
if (unlikely(__pyx_t_3)) {
- /* "src/lxml/apihelpers.pxi":1312
+ /* "src/lxml/apihelpers.pxi":1314
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node):
* raise ValueError("cannot append parent to itself") # <<<<<<<<<<<<<<
* # store possible text node
* c_next = c_node.next
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1312, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(5, 1312, __pyx_L1_error)
+ __PYX_ERR(5, 1314, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1311
+ /* "src/lxml/apihelpers.pxi":1313
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1314
+ /* "src/lxml/apihelpers.pxi":1316
* raise ValueError("cannot append parent to itself")
* # store possible text node
* c_next = c_node.next # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_node->next;
__pyx_v_c_next = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1316
+ /* "src/lxml/apihelpers.pxi":1318
* c_next = c_node.next
* # move node itself
* c_child = _findChildForwards(parent._c_node, 0) # <<<<<<<<<<<<<<
*/
__pyx_v_c_child = __pyx_f_4lxml_5etree__findChildForwards(__pyx_v_parent->_c_node, 0);
- /* "src/lxml/apihelpers.pxi":1317
+ /* "src/lxml/apihelpers.pxi":1319
* # move node itself
* c_child = _findChildForwards(parent._c_node, 0)
* if c_child is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_child == NULL) != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1318
+ /* "src/lxml/apihelpers.pxi":1320
* c_child = _findChildForwards(parent._c_node, 0)
* if c_child is NULL:
* tree.xmlUnlinkNode(c_node) # <<<<<<<<<<<<<<
*/
xmlUnlinkNode(__pyx_v_c_node);
- /* "src/lxml/apihelpers.pxi":1320
+ /* "src/lxml/apihelpers.pxi":1322
* tree.xmlUnlinkNode(c_node)
* # do not call xmlAddChild() here since it would deep-traverse the tree
* _linkChild(parent._c_node, c_node) # <<<<<<<<<<<<<<
* else:
* tree.xmlAddPrevSibling(c_child, c_node)
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1320, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__linkChild(__pyx_v_parent->_c_node, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1322, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1317
+ /* "src/lxml/apihelpers.pxi":1319
* # move node itself
* c_child = _findChildForwards(parent._c_node, 0)
* if c_child is NULL: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "src/lxml/apihelpers.pxi":1322
+ /* "src/lxml/apihelpers.pxi":1324
* _linkChild(parent._c_node, c_node)
* else:
* tree.xmlAddPrevSibling(c_child, c_node) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "src/lxml/apihelpers.pxi":1323
+ /* "src/lxml/apihelpers.pxi":1325
* else:
* tree.xmlAddPrevSibling(c_child, c_node)
* _moveTail(c_next, c_node) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
- /* "src/lxml/apihelpers.pxi":1326
+ /* "src/lxml/apihelpers.pxi":1328
* # uh oh, elements may be pointing to different doc when
* # parent element has moved; change them too..
* moveNodeToDocument(parent._doc, c_source_doc, c_node) # <<<<<<<<<<<<<<
*/
__pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1326, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1328, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1327
+ /* "src/lxml/apihelpers.pxi":1329
* # parent element has moved; change them too..
* moveNodeToDocument(parent._doc, c_source_doc, c_node)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1305
+ /* "src/lxml/apihelpers.pxi":1307
* return 0
*
* cdef int _prependChild(_Element parent, _Element child) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1329
+/* "src/lxml/apihelpers.pxi":1331
* return 0
*
* cdef int _appendSibling(_Element element, _Element sibling) except -1: # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("_appendSibling", 0);
- /* "src/lxml/apihelpers.pxi":1332
+ /* "src/lxml/apihelpers.pxi":1334
* u"""Add a new sibling behind an element.
* """
* return _addSibling(element, sibling, as_next=True) # <<<<<<<<<<<<<<
*
* cdef int _prependSibling(_Element element, _Element sibling) except -1:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1332, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1334, __pyx_L1_error)
__pyx_r = __pyx_t_1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1329
+ /* "src/lxml/apihelpers.pxi":1331
* return 0
*
* cdef int _appendSibling(_Element element, _Element sibling) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1334
+/* "src/lxml/apihelpers.pxi":1336
* return _addSibling(element, sibling, as_next=True)
*
* cdef int _prependSibling(_Element element, _Element sibling) except -1: # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("_prependSibling", 0);
- /* "src/lxml/apihelpers.pxi":1337
+ /* "src/lxml/apihelpers.pxi":1339
* u"""Add a new sibling before an element.
* """
* return _addSibling(element, sibling, as_next=False) # <<<<<<<<<<<<<<
*
* cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1337, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__addSibling(__pyx_v_element, __pyx_v_sibling, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(5, 1339, __pyx_L1_error)
__pyx_r = __pyx_t_1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1334
+ /* "src/lxml/apihelpers.pxi":1336
* return _addSibling(element, sibling, as_next=True)
*
* cdef int _prependSibling(_Element element, _Element sibling) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1339
+/* "src/lxml/apihelpers.pxi":1341
* return _addSibling(element, sibling, as_next=False)
*
* cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1: # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("_addSibling", 0);
- /* "src/lxml/apihelpers.pxi":1340
+ /* "src/lxml/apihelpers.pxi":1342
*
* cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
* c_node = sibling._c_node # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_sibling->_c_node;
__pyx_v_c_node = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1341
+ /* "src/lxml/apihelpers.pxi":1343
* cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1:
* c_node = sibling._c_node
* c_source_doc = c_node.doc # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_c_node->doc;
__pyx_v_c_source_doc = __pyx_t_2;
- /* "src/lxml/apihelpers.pxi":1343
+ /* "src/lxml/apihelpers.pxi":1345
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, element._c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__isAncestorOrSame(__pyx_v_c_node, __pyx_v_element->_c_node) != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1344
+ /* "src/lxml/apihelpers.pxi":1346
* # prevent cycles
* if _isAncestorOrSame(c_node, element._c_node):
* if element._c_node is c_node: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1345
+ /* "src/lxml/apihelpers.pxi":1347
* if _isAncestorOrSame(c_node, element._c_node):
* if element._c_node is c_node:
* return 0 # nothing to do # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1344
+ /* "src/lxml/apihelpers.pxi":1346
* # prevent cycles
* if _isAncestorOrSame(c_node, element._c_node):
* if element._c_node is c_node: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1346
+ /* "src/lxml/apihelpers.pxi":1348
* if element._c_node is c_node:
* return 0 # nothing to do
* raise ValueError("cannot add ancestor as sibling, please break cycle first") # <<<<<<<<<<<<<<
* # store possible text node
* c_next = c_node.next
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1346, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(5, 1346, __pyx_L1_error)
+ __PYX_ERR(5, 1348, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1343
+ /* "src/lxml/apihelpers.pxi":1345
* c_source_doc = c_node.doc
* # prevent cycles
* if _isAncestorOrSame(c_node, element._c_node): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1348
+ /* "src/lxml/apihelpers.pxi":1350
* raise ValueError("cannot add ancestor as sibling, please break cycle first")
* # store possible text node
* c_next = c_node.next # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_c_node->next;
__pyx_v_c_next = __pyx_t_1;
- /* "src/lxml/apihelpers.pxi":1350
+ /* "src/lxml/apihelpers.pxi":1352
* c_next = c_node.next
* # move node itself
* if as_next: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_as_next != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1351
+ /* "src/lxml/apihelpers.pxi":1353
* # move node itself
* if as_next:
* tree.xmlAddNextSibling(element._c_node, c_node) # <<<<<<<<<<<<<<
*/
(void)(xmlAddNextSibling(__pyx_v_element->_c_node, __pyx_v_c_node));
- /* "src/lxml/apihelpers.pxi":1350
+ /* "src/lxml/apihelpers.pxi":1352
* c_next = c_node.next
* # move node itself
* if as_next: # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "src/lxml/apihelpers.pxi":1353
+ /* "src/lxml/apihelpers.pxi":1355
* tree.xmlAddNextSibling(element._c_node, c_node)
* else:
* tree.xmlAddPrevSibling(element._c_node, c_node) # <<<<<<<<<<<<<<
}
__pyx_L5:;
- /* "src/lxml/apihelpers.pxi":1354
+ /* "src/lxml/apihelpers.pxi":1356
* else:
* tree.xmlAddPrevSibling(element._c_node, c_node)
* _moveTail(c_next, c_node) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
- /* "src/lxml/apihelpers.pxi":1357
+ /* "src/lxml/apihelpers.pxi":1359
* # uh oh, elements may be pointing to different doc when
* # parent element has moved; change them too..
* moveNodeToDocument(element._doc, c_source_doc, c_node) # <<<<<<<<<<<<<<
*/
__pyx_t_4 = ((PyObject *)__pyx_v_element->_doc);
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1357, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(5, 1359, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1358
+ /* "src/lxml/apihelpers.pxi":1360
* # parent element has moved; change them too..
* moveNodeToDocument(element._doc, c_source_doc, c_node)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1339
+ /* "src/lxml/apihelpers.pxi":1341
* return _addSibling(element, sibling, as_next=False)
*
* cdef int _addSibling(_Element element, _Element sibling, bint as_next) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1360
+/* "src/lxml/apihelpers.pxi":1362
* return 0
*
* cdef inline bint isutf8(const_xmlChar* s): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("isutf8", 0);
- /* "src/lxml/apihelpers.pxi":1361
+ /* "src/lxml/apihelpers.pxi":1363
*
* cdef inline bint isutf8(const_xmlChar* s):
* cdef xmlChar c = s[0] # <<<<<<<<<<<<<<
*/
__pyx_v_c = (__pyx_v_s[0]);
- /* "src/lxml/apihelpers.pxi":1362
+ /* "src/lxml/apihelpers.pxi":1364
* cdef inline bint isutf8(const_xmlChar* s):
* cdef xmlChar c = s[0]
* while c != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c != '\x00') != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/apihelpers.pxi":1363
+ /* "src/lxml/apihelpers.pxi":1365
* cdef xmlChar c = s[0]
* while c != c'\0':
* if c & 0x80: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c & 0x80) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1364
+ /* "src/lxml/apihelpers.pxi":1366
* while c != c'\0':
* if c & 0x80:
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1363
+ /* "src/lxml/apihelpers.pxi":1365
* cdef xmlChar c = s[0]
* while c != c'\0':
* if c & 0x80: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1365
+ /* "src/lxml/apihelpers.pxi":1367
* if c & 0x80:
* return True
* s += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_s = (__pyx_v_s + 1);
- /* "src/lxml/apihelpers.pxi":1366
+ /* "src/lxml/apihelpers.pxi":1368
* return True
* s += 1
* c = s[0] # <<<<<<<<<<<<<<
__pyx_v_c = (__pyx_v_s[0]);
}
- /* "src/lxml/apihelpers.pxi":1367
+ /* "src/lxml/apihelpers.pxi":1369
* s += 1
* c = s[0]
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1360
+ /* "src/lxml/apihelpers.pxi":1362
* return 0
*
* cdef inline bint isutf8(const_xmlChar* s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1369
+/* "src/lxml/apihelpers.pxi":1371
* return False
*
* cdef bint isutf8l(const_xmlChar* s, size_t length): # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("isutf8l", 0);
- /* "src/lxml/apihelpers.pxi":1375
+ /* "src/lxml/apihelpers.pxi":1377
* cdef int i
* cdef unsigned long non_ascii_mask
* cdef const unsigned long *lptr = <const unsigned long*> s # <<<<<<<<<<<<<<
*/
__pyx_v_lptr = ((unsigned long const *)__pyx_v_s);
- /* "src/lxml/apihelpers.pxi":1377
+ /* "src/lxml/apihelpers.pxi":1379
* cdef const unsigned long *lptr = <const unsigned long*> s
*
* cdef const unsigned long *end = lptr + length // sizeof(unsigned long) # <<<<<<<<<<<<<<
__pyx_t_1 = (sizeof(unsigned long));
if (unlikely(__pyx_t_1 == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
- __PYX_ERR(5, 1377, __pyx_L1_error)
+ __PYX_ERR(5, 1379, __pyx_L1_error)
}
__pyx_v_end = (__pyx_v_lptr + (__pyx_v_length / __pyx_t_1));
- /* "src/lxml/apihelpers.pxi":1378
+ /* "src/lxml/apihelpers.pxi":1380
*
* cdef const unsigned long *end = lptr + length // sizeof(unsigned long)
* if length >= sizeof(non_ascii_mask): # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_length >= (sizeof(__pyx_v_non_ascii_mask))) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1380
+ /* "src/lxml/apihelpers.pxi":1382
* if length >= sizeof(non_ascii_mask):
* # Build constant 0x80808080... mask (and let the C compiler fold it).
* non_ascii_mask = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_non_ascii_mask = 0;
- /* "src/lxml/apihelpers.pxi":1381
+ /* "src/lxml/apihelpers.pxi":1383
* # Build constant 0x80808080... mask (and let the C compiler fold it).
* non_ascii_mask = 0
* for i in range(sizeof(non_ascii_mask) // 2): # <<<<<<<<<<<<<<
for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
- /* "src/lxml/apihelpers.pxi":1382
+ /* "src/lxml/apihelpers.pxi":1384
* non_ascii_mask = 0
* for i in range(sizeof(non_ascii_mask) // 2):
* non_ascii_mask = (non_ascii_mask << 16) | 0x8080 # <<<<<<<<<<<<<<
__pyx_v_non_ascii_mask = ((__pyx_v_non_ascii_mask << 16) | 0x8080);
}
- /* "src/lxml/apihelpers.pxi":1385
+ /* "src/lxml/apihelpers.pxi":1387
*
* # Advance to long-aligned character before we start reading longs.
* while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end: # <<<<<<<<<<<<<<
__pyx_t_1 = (sizeof(unsigned long));
if (unlikely(__pyx_t_1 == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
- __PYX_ERR(5, 1385, __pyx_L1_error)
+ __PYX_ERR(5, 1387, __pyx_L1_error)
}
__pyx_t_5 = ((((size_t)__pyx_v_s) % __pyx_t_1) != 0);
if (__pyx_t_5) {
__pyx_L8_bool_binop_done:;
if (!__pyx_t_2) break;
- /* "src/lxml/apihelpers.pxi":1386
+ /* "src/lxml/apihelpers.pxi":1388
* # Advance to long-aligned character before we start reading longs.
* while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
* if s[0] & 0x80: # <<<<<<<<<<<<<<
__pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1387
+ /* "src/lxml/apihelpers.pxi":1389
* while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
* if s[0] & 0x80:
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1386
+ /* "src/lxml/apihelpers.pxi":1388
* # Advance to long-aligned character before we start reading longs.
* while (<size_t>s) % sizeof(unsigned long) and s < <const_xmlChar *>end:
* if s[0] & 0x80: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1388
+ /* "src/lxml/apihelpers.pxi":1390
* if s[0] & 0x80:
* return True
* s += 1 # <<<<<<<<<<<<<<
__pyx_v_s = (__pyx_v_s + 1);
}
- /* "src/lxml/apihelpers.pxi":1391
+ /* "src/lxml/apihelpers.pxi":1393
*
* # Read one long at a time
* lptr = <const unsigned long*> s # <<<<<<<<<<<<<<
*/
__pyx_v_lptr = ((unsigned long const *)__pyx_v_s);
- /* "src/lxml/apihelpers.pxi":1392
+ /* "src/lxml/apihelpers.pxi":1394
* # Read one long at a time
* lptr = <const unsigned long*> s
* while lptr < end: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_lptr < __pyx_v_end) != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/apihelpers.pxi":1393
+ /* "src/lxml/apihelpers.pxi":1395
* lptr = <const unsigned long*> s
* while lptr < end:
* if lptr[0] & non_ascii_mask: # <<<<<<<<<<<<<<
__pyx_t_2 = (((__pyx_v_lptr[0]) & __pyx_v_non_ascii_mask) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1394
+ /* "src/lxml/apihelpers.pxi":1396
* while lptr < end:
* if lptr[0] & non_ascii_mask:
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1393
+ /* "src/lxml/apihelpers.pxi":1395
* lptr = <const unsigned long*> s
* while lptr < end:
* if lptr[0] & non_ascii_mask: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1395
+ /* "src/lxml/apihelpers.pxi":1397
* if lptr[0] & non_ascii_mask:
* return True
* lptr += 1 # <<<<<<<<<<<<<<
__pyx_v_lptr = (__pyx_v_lptr + 1);
}
- /* "src/lxml/apihelpers.pxi":1396
+ /* "src/lxml/apihelpers.pxi":1398
* return True
* lptr += 1
* s = <const_xmlChar *>lptr # <<<<<<<<<<<<<<
*/
__pyx_v_s = ((const xmlChar *)__pyx_v_lptr);
- /* "src/lxml/apihelpers.pxi":1378
+ /* "src/lxml/apihelpers.pxi":1380
*
* cdef const unsigned long *end = lptr + length // sizeof(unsigned long)
* if length >= sizeof(non_ascii_mask): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1398
+ /* "src/lxml/apihelpers.pxi":1400
* s = <const_xmlChar *>lptr
*
* while s < (<const_xmlChar *>end + length % sizeof(unsigned long)): # <<<<<<<<<<<<<<
__pyx_t_1 = (sizeof(unsigned long));
if (unlikely(__pyx_t_1 == 0)) {
PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
- __PYX_ERR(5, 1398, __pyx_L1_error)
+ __PYX_ERR(5, 1400, __pyx_L1_error)
}
__pyx_t_2 = ((__pyx_v_s < (((const xmlChar *)__pyx_v_end) + (__pyx_v_length % __pyx_t_1))) != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/apihelpers.pxi":1399
+ /* "src/lxml/apihelpers.pxi":1401
*
* while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
* if s[0] & 0x80: # <<<<<<<<<<<<<<
__pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1400
+ /* "src/lxml/apihelpers.pxi":1402
* while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
* if s[0] & 0x80:
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1399
+ /* "src/lxml/apihelpers.pxi":1401
*
* while s < (<const_xmlChar *>end + length % sizeof(unsigned long)):
* if s[0] & 0x80: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1401
+ /* "src/lxml/apihelpers.pxi":1403
* if s[0] & 0x80:
* return True
* s += 1 # <<<<<<<<<<<<<<
__pyx_v_s = (__pyx_v_s + 1);
}
- /* "src/lxml/apihelpers.pxi":1403
+ /* "src/lxml/apihelpers.pxi":1405
* s += 1
*
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1369
+ /* "src/lxml/apihelpers.pxi":1371
* return False
*
* cdef bint isutf8l(const_xmlChar* s, size_t length): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1405
+/* "src/lxml/apihelpers.pxi":1407
* return False
*
* cdef int _is_valid_xml_ascii(bytes pystring): # <<<<<<<<<<<<<<
int __pyx_t_6;
__Pyx_RefNannySetupContext("_is_valid_xml_ascii", 0);
- /* "src/lxml/apihelpers.pxi":1410
+ /* "src/lxml/apihelpers.pxi":1412
* # When ch is a *signed* char, non-ascii characters are negative integers
* # and xmlIsChar_ch does not accept them.
* for ch in pystring: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_pystring == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
- __PYX_ERR(5, 1410, __pyx_L1_error)
+ __PYX_ERR(5, 1412, __pyx_L1_error)
}
__Pyx_INCREF(__pyx_v_pystring);
__pyx_t_1 = __pyx_v_pystring;
__pyx_t_2 = __pyx_t_5;
__pyx_v_ch = (__pyx_t_2[0]);
- /* "src/lxml/apihelpers.pxi":1411
+ /* "src/lxml/apihelpers.pxi":1413
* # and xmlIsChar_ch does not accept them.
* for ch in pystring:
* if not tree.xmlIsChar_ch(ch): # <<<<<<<<<<<<<<
__pyx_t_6 = ((!(xmlIsChar_ch(__pyx_v_ch) != 0)) != 0);
if (__pyx_t_6) {
- /* "src/lxml/apihelpers.pxi":1412
+ /* "src/lxml/apihelpers.pxi":1414
* for ch in pystring:
* if not tree.xmlIsChar_ch(ch):
* return 0 # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1411
+ /* "src/lxml/apihelpers.pxi":1413
* # and xmlIsChar_ch does not accept them.
* for ch in pystring:
* if not tree.xmlIsChar_ch(ch): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/apihelpers.pxi":1413
+ /* "src/lxml/apihelpers.pxi":1415
* if not tree.xmlIsChar_ch(ch):
* return 0
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1405
+ /* "src/lxml/apihelpers.pxi":1407
* return False
*
* cdef int _is_valid_xml_ascii(bytes pystring): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1415
+/* "src/lxml/apihelpers.pxi":1417
* return 1
*
* cdef bint _is_valid_xml_utf8(bytes pystring): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_is_valid_xml_utf8", 0);
- /* "src/lxml/apihelpers.pxi":1417
+ /* "src/lxml/apihelpers.pxi":1419
* cdef bint _is_valid_xml_utf8(bytes pystring):
* u"""Check if a string is like valid UTF-8 XML content."""
* cdef const_xmlChar* s = _xcstr(pystring) # <<<<<<<<<<<<<<
*/
__pyx_v_s = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_pystring);
- /* "src/lxml/apihelpers.pxi":1418
+ /* "src/lxml/apihelpers.pxi":1420
* u"""Check if a string is like valid UTF-8 XML content."""
* cdef const_xmlChar* s = _xcstr(pystring)
* cdef const_xmlChar* c_end = s + len(pystring) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_pystring == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(5, 1418, __pyx_L1_error)
+ __PYX_ERR(5, 1420, __pyx_L1_error)
}
- __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1418, __pyx_L1_error)
+ __pyx_t_1 = PyBytes_GET_SIZE(__pyx_v_pystring); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1420, __pyx_L1_error)
__pyx_v_c_end = (__pyx_v_s + __pyx_t_1);
- /* "src/lxml/apihelpers.pxi":1419
+ /* "src/lxml/apihelpers.pxi":1421
* cdef const_xmlChar* s = _xcstr(pystring)
* cdef const_xmlChar* c_end = s + len(pystring)
* cdef unsigned long next3 = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_next3 = 0;
- /* "src/lxml/apihelpers.pxi":1420
+ /* "src/lxml/apihelpers.pxi":1422
* cdef const_xmlChar* c_end = s + len(pystring)
* cdef unsigned long next3 = 0
* if s < c_end - 2: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_s < (__pyx_v_c_end - 2)) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1421
+ /* "src/lxml/apihelpers.pxi":1423
* cdef unsigned long next3 = 0
* if s < c_end - 2:
* next3 = (s[0] << 8) | (s[1]) # <<<<<<<<<<<<<<
*/
__pyx_v_next3 = (((__pyx_v_s[0]) << 8) | (__pyx_v_s[1]));
- /* "src/lxml/apihelpers.pxi":1420
+ /* "src/lxml/apihelpers.pxi":1422
* cdef const_xmlChar* c_end = s + len(pystring)
* cdef unsigned long next3 = 0
* if s < c_end - 2: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1423
+ /* "src/lxml/apihelpers.pxi":1425
* next3 = (s[0] << 8) | (s[1])
*
* while s < c_end - 2: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_s < (__pyx_v_c_end - 2)) != 0);
if (!__pyx_t_2) break;
- /* "src/lxml/apihelpers.pxi":1424
+ /* "src/lxml/apihelpers.pxi":1426
*
* while s < c_end - 2:
* next3 = 0x00ffffff & ((next3 << 8) | s[2]) # <<<<<<<<<<<<<<
*/
__pyx_v_next3 = (0x00ffffff & ((__pyx_v_next3 << 8) | (__pyx_v_s[2])));
- /* "src/lxml/apihelpers.pxi":1425
+ /* "src/lxml/apihelpers.pxi":1427
* while s < c_end - 2:
* next3 = 0x00ffffff & ((next3 << 8) | s[2])
* if s[0] & 0x80: # <<<<<<<<<<<<<<
__pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1428
+ /* "src/lxml/apihelpers.pxi":1430
* # 0xefbfbe and 0xefbfbf are utf-8 encodings of
* # forbidden characters \ufffe and \uffff
* if next3 == 0x00efbfbe or next3 == 0x00efbfbf: # <<<<<<<<<<<<<<
case 0x00efbfbe:
case 0x00efbfbf:
- /* "src/lxml/apihelpers.pxi":1429
+ /* "src/lxml/apihelpers.pxi":1431
* # forbidden characters \ufffe and \uffff
* if next3 == 0x00efbfbe or next3 == 0x00efbfbf:
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1428
+ /* "src/lxml/apihelpers.pxi":1430
* # 0xefbfbe and 0xefbfbf are utf-8 encodings of
* # forbidden characters \ufffe and \uffff
* if next3 == 0x00efbfbe or next3 == 0x00efbfbf: # <<<<<<<<<<<<<<
default: break;
}
- /* "src/lxml/apihelpers.pxi":1433
+ /* "src/lxml/apihelpers.pxi":1435
* # \ud800 and \udfff. Anything between them (inclusive)
* # is forbidden, because they are surrogate blocks in utf-16.
* if 0x00eda080 <= next3 <= 0x00edbfbf: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1434
+ /* "src/lxml/apihelpers.pxi":1436
* # is forbidden, because they are surrogate blocks in utf-16.
* if 0x00eda080 <= next3 <= 0x00edbfbf:
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1433
+ /* "src/lxml/apihelpers.pxi":1435
* # \ud800 and \udfff. Anything between them (inclusive)
* # is forbidden, because they are surrogate blocks in utf-16.
* if 0x00eda080 <= next3 <= 0x00edbfbf: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1425
+ /* "src/lxml/apihelpers.pxi":1427
* while s < c_end - 2:
* next3 = 0x00ffffff & ((next3 << 8) | s[2])
* if s[0] & 0x80: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/apihelpers.pxi":1435
+ /* "src/lxml/apihelpers.pxi":1437
* if 0x00eda080 <= next3 <= 0x00edbfbf:
* return 0
* elif not tree.xmlIsChar_ch(s[0]): # <<<<<<<<<<<<<<
__pyx_t_3 = ((!(xmlIsChar_ch((__pyx_v_s[0])) != 0)) != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1436
+ /* "src/lxml/apihelpers.pxi":1438
* return 0
* elif not tree.xmlIsChar_ch(s[0]):
* return 0 # invalid ascii char # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1435
+ /* "src/lxml/apihelpers.pxi":1437
* if 0x00eda080 <= next3 <= 0x00edbfbf:
* return 0
* elif not tree.xmlIsChar_ch(s[0]): # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "src/lxml/apihelpers.pxi":1437
+ /* "src/lxml/apihelpers.pxi":1439
* elif not tree.xmlIsChar_ch(s[0]):
* return 0 # invalid ascii char
* s += 1 # <<<<<<<<<<<<<<
__pyx_v_s = (__pyx_v_s + 1);
}
- /* "src/lxml/apihelpers.pxi":1439
+ /* "src/lxml/apihelpers.pxi":1441
* s += 1
*
* while s < c_end: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_s < __pyx_v_c_end) != 0);
if (!__pyx_t_3) break;
- /* "src/lxml/apihelpers.pxi":1440
+ /* "src/lxml/apihelpers.pxi":1442
*
* while s < c_end:
* if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]): # <<<<<<<<<<<<<<
__pyx_L11_bool_binop_done:;
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1441
+ /* "src/lxml/apihelpers.pxi":1443
* while s < c_end:
* if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):
* return 0 # invalid ascii char # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1440
+ /* "src/lxml/apihelpers.pxi":1442
*
* while s < c_end:
* if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1442
+ /* "src/lxml/apihelpers.pxi":1444
* if not s[0] & 0x80 and not tree.xmlIsChar_ch(s[0]):
* return 0 # invalid ascii char
* s += 1 # <<<<<<<<<<<<<<
__pyx_v_s = (__pyx_v_s + 1);
}
- /* "src/lxml/apihelpers.pxi":1444
+ /* "src/lxml/apihelpers.pxi":1446
* s += 1
*
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1415
+ /* "src/lxml/apihelpers.pxi":1417
* return 1
*
* cdef bint _is_valid_xml_utf8(bytes pystring): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1446
+/* "src/lxml/apihelpers.pxi":1448
* return 1
*
* cdef inline object funicodeOrNone(const_xmlChar* s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("funicodeOrNone", 0);
- /* "src/lxml/apihelpers.pxi":1447
+ /* "src/lxml/apihelpers.pxi":1449
*
* cdef inline object funicodeOrNone(const_xmlChar* s):
* return funicode(s) if s is not NULL else None # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_s != NULL) != 0)) {
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1447, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1449, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1446
+ /* "src/lxml/apihelpers.pxi":1448
* return 1
*
* cdef inline object funicodeOrNone(const_xmlChar* s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1449
+/* "src/lxml/apihelpers.pxi":1451
* return funicode(s) if s is not NULL else None
*
* cdef inline object funicodeOrEmpty(const_xmlChar* s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("funicodeOrEmpty", 0);
- /* "src/lxml/apihelpers.pxi":1450
+ /* "src/lxml/apihelpers.pxi":1452
*
* cdef inline object funicodeOrEmpty(const_xmlChar* s):
* return funicode(s) if s is not NULL else '' # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_s != NULL) != 0)) {
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1450, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1449
+ /* "src/lxml/apihelpers.pxi":1451
* return funicode(s) if s is not NULL else None
*
* cdef inline object funicodeOrEmpty(const_xmlChar* s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1452
+/* "src/lxml/apihelpers.pxi":1454
* return funicode(s) if s is not NULL else ''
*
* cdef object funicode(const_xmlChar* s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("funicode", 0);
- /* "src/lxml/apihelpers.pxi":1456
+ /* "src/lxml/apihelpers.pxi":1458
* cdef const_xmlChar* spos
* cdef bint is_non_ascii
* if python.LXML_UNICODE_STRINGS: # <<<<<<<<<<<<<<
__pyx_t_1 = (LXML_UNICODE_STRINGS != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1457
+ /* "src/lxml/apihelpers.pxi":1459
* cdef bint is_non_ascii
* if python.LXML_UNICODE_STRINGS:
* return s.decode('UTF-8') # <<<<<<<<<<<<<<
* is_non_ascii = 0
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, strlen(((char const *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1457, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, strlen(((char const *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1456
+ /* "src/lxml/apihelpers.pxi":1458
* cdef const_xmlChar* spos
* cdef bint is_non_ascii
* if python.LXML_UNICODE_STRINGS: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1458
+ /* "src/lxml/apihelpers.pxi":1460
* if python.LXML_UNICODE_STRINGS:
* return s.decode('UTF-8')
* spos = s # <<<<<<<<<<<<<<
*/
__pyx_v_spos = __pyx_v_s;
- /* "src/lxml/apihelpers.pxi":1459
+ /* "src/lxml/apihelpers.pxi":1461
* return s.decode('UTF-8')
* spos = s
* is_non_ascii = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_is_non_ascii = 0;
- /* "src/lxml/apihelpers.pxi":1460
+ /* "src/lxml/apihelpers.pxi":1462
* spos = s
* is_non_ascii = 0
* while spos[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/apihelpers.pxi":1461
+ /* "src/lxml/apihelpers.pxi":1463
* is_non_ascii = 0
* while spos[0] != c'\0':
* if spos[0] & 0x80: # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_spos[0]) & 0x80) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1462
+ /* "src/lxml/apihelpers.pxi":1464
* while spos[0] != c'\0':
* if spos[0] & 0x80:
* is_non_ascii = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_non_ascii = 1;
- /* "src/lxml/apihelpers.pxi":1463
+ /* "src/lxml/apihelpers.pxi":1465
* if spos[0] & 0x80:
* is_non_ascii = 1
* break # <<<<<<<<<<<<<<
*/
goto __pyx_L5_break;
- /* "src/lxml/apihelpers.pxi":1461
+ /* "src/lxml/apihelpers.pxi":1463
* is_non_ascii = 0
* while spos[0] != c'\0':
* if spos[0] & 0x80: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1464
+ /* "src/lxml/apihelpers.pxi":1466
* is_non_ascii = 1
* break
* spos += 1 # <<<<<<<<<<<<<<
}
__pyx_L5_break:;
- /* "src/lxml/apihelpers.pxi":1465
+ /* "src/lxml/apihelpers.pxi":1467
* break
* spos += 1
* slen = spos - s # <<<<<<<<<<<<<<
*/
__pyx_v_slen = (__pyx_v_spos - __pyx_v_s);
- /* "src/lxml/apihelpers.pxi":1466
+ /* "src/lxml/apihelpers.pxi":1468
* spos += 1
* slen = spos - s
* if spos[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1467
+ /* "src/lxml/apihelpers.pxi":1469
* slen = spos - s
* if spos[0] != c'\0':
* slen += cstring_h.strlen(<const char*> spos) # <<<<<<<<<<<<<<
*/
__pyx_v_slen = (__pyx_v_slen + strlen(((char const *)__pyx_v_spos)));
- /* "src/lxml/apihelpers.pxi":1466
+ /* "src/lxml/apihelpers.pxi":1468
* spos += 1
* slen = spos - s
* if spos[0] != c'\0': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1468
+ /* "src/lxml/apihelpers.pxi":1470
* if spos[0] != c'\0':
* slen += cstring_h.strlen(<const char*> spos)
* if is_non_ascii: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_is_non_ascii != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1469
+ /* "src/lxml/apihelpers.pxi":1471
* slen += cstring_h.strlen(<const char*> spos)
* if is_non_ascii:
* return s[:slen].decode('UTF-8') # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1469, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_c_string(((char const *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1468
+ /* "src/lxml/apihelpers.pxi":1470
* if spos[0] != c'\0':
* slen += cstring_h.strlen(<const char*> spos)
* if is_non_ascii: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1470
+ /* "src/lxml/apihelpers.pxi":1472
* if is_non_ascii:
* return s[:slen].decode('UTF-8')
* return <bytes>s[:slen] # <<<<<<<<<<<<<<
* cdef bytes _utf8(object s):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1470, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject*)__pyx_t_2));
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1452
+ /* "src/lxml/apihelpers.pxi":1454
* return funicode(s) if s is not NULL else ''
*
* cdef object funicode(const_xmlChar* s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1472
+/* "src/lxml/apihelpers.pxi":1474
* return <bytes>s[:slen]
*
* cdef bytes _utf8(object s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("_utf8", 0);
- /* "src/lxml/apihelpers.pxi":1479
+ /* "src/lxml/apihelpers.pxi":1481
* cdef int valid
* cdef bytes utf8_string
* if python.IS_PYTHON2 and type(s) is bytes: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1480
+ /* "src/lxml/apihelpers.pxi":1482
* cdef bytes utf8_string
* if python.IS_PYTHON2 and type(s) is bytes:
* utf8_string = <bytes>s # <<<<<<<<<<<<<<
__pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1481
+ /* "src/lxml/apihelpers.pxi":1483
* if python.IS_PYTHON2 and type(s) is bytes:
* utf8_string = <bytes>s
* valid = _is_valid_xml_ascii(utf8_string) # <<<<<<<<<<<<<<
*/
__pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_ascii(__pyx_v_utf8_string);
- /* "src/lxml/apihelpers.pxi":1479
+ /* "src/lxml/apihelpers.pxi":1481
* cdef int valid
* cdef bytes utf8_string
* if python.IS_PYTHON2 and type(s) is bytes: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/apihelpers.pxi":1482
+ /* "src/lxml/apihelpers.pxi":1484
* utf8_string = <bytes>s
* valid = _is_valid_xml_ascii(utf8_string)
* elif isinstance(s, unicode): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
- /* "src/lxml/apihelpers.pxi":1483
+ /* "src/lxml/apihelpers.pxi":1485
* valid = _is_valid_xml_ascii(utf8_string)
* elif isinstance(s, unicode):
* utf8_string = (<unicode>s).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
- __PYX_ERR(5, 1483, __pyx_L1_error)
+ __PYX_ERR(5, 1485, __pyx_L1_error)
}
- __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1483, __pyx_L1_error)
+ __pyx_t_4 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1485, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1484
+ /* "src/lxml/apihelpers.pxi":1486
* elif isinstance(s, unicode):
* utf8_string = (<unicode>s).encode('utf8')
* valid = _is_valid_xml_utf8(utf8_string) # <<<<<<<<<<<<<<
*/
__pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_utf8(__pyx_v_utf8_string);
- /* "src/lxml/apihelpers.pxi":1482
+ /* "src/lxml/apihelpers.pxi":1484
* utf8_string = <bytes>s
* valid = _is_valid_xml_ascii(utf8_string)
* elif isinstance(s, unicode): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/apihelpers.pxi":1485
+ /* "src/lxml/apihelpers.pxi":1487
* utf8_string = (<unicode>s).encode('utf8')
* valid = _is_valid_xml_utf8(utf8_string)
* elif isinstance(s, (bytes, bytearray)): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_3 != 0);
if (likely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1486
+ /* "src/lxml/apihelpers.pxi":1488
* valid = _is_valid_xml_utf8(utf8_string)
* elif isinstance(s, (bytes, bytearray)):
* utf8_string = bytes(s) # <<<<<<<<<<<<<<
* valid = _is_valid_xml_ascii(utf8_string)
* else:
*/
- __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1486, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyBytes_Type)), __pyx_v_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1487
+ /* "src/lxml/apihelpers.pxi":1489
* elif isinstance(s, (bytes, bytearray)):
* utf8_string = bytes(s)
* valid = _is_valid_xml_ascii(utf8_string) # <<<<<<<<<<<<<<
*/
__pyx_v_valid = __pyx_f_4lxml_5etree__is_valid_xml_ascii(__pyx_v_utf8_string);
- /* "src/lxml/apihelpers.pxi":1485
+ /* "src/lxml/apihelpers.pxi":1487
* utf8_string = (<unicode>s).encode('utf8')
* valid = _is_valid_xml_utf8(utf8_string)
* elif isinstance(s, (bytes, bytearray)): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/apihelpers.pxi":1489
+ /* "src/lxml/apihelpers.pxi":1491
* valid = _is_valid_xml_ascii(utf8_string)
* else:
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__) # <<<<<<<<<<<<<<
* raise ValueError(
*/
/*else*/ {
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1489, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1489, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Argument_must_be_bytes_or_unicod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1489, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(5, 1489, __pyx_L1_error)
+ __PYX_ERR(5, 1491, __pyx_L1_error)
}
__pyx_L3:;
- /* "src/lxml/apihelpers.pxi":1490
+ /* "src/lxml/apihelpers.pxi":1492
* else:
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
* if not valid: # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_v_valid != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1491
+ /* "src/lxml/apihelpers.pxi":1493
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
* if not valid:
* raise ValueError( # <<<<<<<<<<<<<<
* "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
* return utf8_string
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1491, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(5, 1491, __pyx_L1_error)
+ __PYX_ERR(5, 1493, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1490
+ /* "src/lxml/apihelpers.pxi":1492
* else:
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
* if not valid: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1493
+ /* "src/lxml/apihelpers.pxi":1495
* raise ValueError(
* "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
* return utf8_string # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_utf8_string;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1472
+ /* "src/lxml/apihelpers.pxi":1474
* return <bytes>s[:slen]
*
* cdef bytes _utf8(object s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1496
+/* "src/lxml/apihelpers.pxi":1498
*
*
* cdef bytes _utf8orNone(object s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_utf8orNone", 0);
- /* "src/lxml/apihelpers.pxi":1497
+ /* "src/lxml/apihelpers.pxi":1499
*
* cdef bytes _utf8orNone(object s):
* return _utf8(s) if s is not None else None # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = (__pyx_v_s != Py_None);
if ((__pyx_t_2 != 0)) {
- __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1497, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1499, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1496
+ /* "src/lxml/apihelpers.pxi":1498
*
*
* cdef bytes _utf8orNone(object s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1500
+/* "src/lxml/apihelpers.pxi":1502
*
*
* cdef strrepr(s): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("strrepr", 0);
- /* "src/lxml/apihelpers.pxi":1504
+ /* "src/lxml/apihelpers.pxi":1506
* methods, e.g. _Element.__repr__().
* """
* return s.encode('unicode-escape') if python.IS_PYTHON2 else s # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
if ((IS_PYTHON2 != 0)) {
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1504, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_s_unicode_escape) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_s_unicode_escape);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1504, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1500
+ /* "src/lxml/apihelpers.pxi":1502
*
*
* cdef strrepr(s): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1507
+/* "src/lxml/apihelpers.pxi":1509
*
*
* cdef bint _isFilePath(const_xmlChar* c_path): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_isFilePath", 0);
- /* "src/lxml/apihelpers.pxi":1511
+ /* "src/lxml/apihelpers.pxi":1513
* cdef xmlChar c
* # test if it looks like an absolute Unix path or a Windows network path
* if c_path[0] == c'/': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_path[0]) == '/') != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1512
+ /* "src/lxml/apihelpers.pxi":1514
* # test if it looks like an absolute Unix path or a Windows network path
* if c_path[0] == c'/':
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1511
+ /* "src/lxml/apihelpers.pxi":1513
* cdef xmlChar c
* # test if it looks like an absolute Unix path or a Windows network path
* if c_path[0] == c'/': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1515
+ /* "src/lxml/apihelpers.pxi":1517
*
* # test if it looks like an absolute Windows path or URL
* if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z': # <<<<<<<<<<<<<<
__pyx_L5_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1516
+ /* "src/lxml/apihelpers.pxi":1518
* # test if it looks like an absolute Windows path or URL
* if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_path = (__pyx_v_c_path + 1);
- /* "src/lxml/apihelpers.pxi":1517
+ /* "src/lxml/apihelpers.pxi":1519
* if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1
* if c_path[0] == c':' and c_path[1] in b'\0\\': # <<<<<<<<<<<<<<
__pyx_L8_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1518
+ /* "src/lxml/apihelpers.pxi":1520
* c_path += 1
* if c_path[0] == c':' and c_path[1] in b'\0\\':
* return 1 # C: or C:\... # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1517
+ /* "src/lxml/apihelpers.pxi":1519
* if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1
* if c_path[0] == c':' and c_path[1] in b'\0\\': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1521
+ /* "src/lxml/apihelpers.pxi":1523
*
* # test if it looks like a URL with scheme://
* while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z': # <<<<<<<<<<<<<<
__pyx_L12_bool_binop_done:;
if (!__pyx_t_1) break;
- /* "src/lxml/apihelpers.pxi":1522
+ /* "src/lxml/apihelpers.pxi":1524
* # test if it looks like a URL with scheme://
* while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1 # <<<<<<<<<<<<<<
__pyx_v_c_path = (__pyx_v_c_path + 1);
}
- /* "src/lxml/apihelpers.pxi":1523
+ /* "src/lxml/apihelpers.pxi":1525
* while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1
* if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/': # <<<<<<<<<<<<<<
__pyx_L15_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1524
+ /* "src/lxml/apihelpers.pxi":1526
* c_path += 1
* if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1523
+ /* "src/lxml/apihelpers.pxi":1525
* while c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z':
* c_path += 1
* if c_path[0] == c':' and c_path[1] == c'/' and c_path[2] == c'/': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1515
+ /* "src/lxml/apihelpers.pxi":1517
*
* # test if it looks like an absolute Windows path or URL
* if c'a' <= c_path[0] <= c'z' or c'A' <= c_path[0] <= c'Z': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1527
+ /* "src/lxml/apihelpers.pxi":1529
*
* # assume it's a relative path
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1507
+ /* "src/lxml/apihelpers.pxi":1509
*
*
* cdef bint _isFilePath(const_xmlChar* c_path): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1529
+/* "src/lxml/apihelpers.pxi":1531
* return 1
*
* cdef object _encodeFilename(object filename): # <<<<<<<<<<<<<<
int __pyx_t_8;
__Pyx_RefNannySetupContext("_encodeFilename", 0);
- /* "src/lxml/apihelpers.pxi":1532
+ /* "src/lxml/apihelpers.pxi":1534
* u"""Make sure a filename is 8-bit encoded (or None).
* """
* if filename is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1533
+ /* "src/lxml/apihelpers.pxi":1535
* """
* if filename is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1532
+ /* "src/lxml/apihelpers.pxi":1534
* u"""Make sure a filename is 8-bit encoded (or None).
* """
* if filename is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1534
+ /* "src/lxml/apihelpers.pxi":1536
* if filename is None:
* return None
* elif isinstance(filename, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1535
+ /* "src/lxml/apihelpers.pxi":1537
* return None
* elif isinstance(filename, bytes):
* return filename # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_filename;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1534
+ /* "src/lxml/apihelpers.pxi":1536
* if filename is None:
* return None
* elif isinstance(filename, bytes): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1536
+ /* "src/lxml/apihelpers.pxi":1538
* elif isinstance(filename, bytes):
* return filename
* elif isinstance(filename, unicode): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (likely(__pyx_t_2)) {
- /* "src/lxml/apihelpers.pxi":1537
+ /* "src/lxml/apihelpers.pxi":1539
* return filename
* elif isinstance(filename, unicode):
* filename8 = (<unicode>filename).encode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
- __PYX_ERR(5, 1537, __pyx_L1_error)
+ __PYX_ERR(5, 1539, __pyx_L1_error)
}
- __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1537, __pyx_L1_error)
+ __pyx_t_3 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1539, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_filename8 = __pyx_t_3;
__pyx_t_3 = 0;
- /* "src/lxml/apihelpers.pxi":1538
+ /* "src/lxml/apihelpers.pxi":1540
* elif isinstance(filename, unicode):
* filename8 = (<unicode>filename).encode('utf8')
* if _isFilePath(<unsigned char*>filename8): # <<<<<<<<<<<<<<
* try:
* return python.PyUnicode_AsEncodedString(
*/
- __pyx_t_4 = __Pyx_PyObject_AsWritableUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1538, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_AsWritableUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1540, __pyx_L1_error)
__pyx_t_2 = (__pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_4)) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1539
+ /* "src/lxml/apihelpers.pxi":1541
* filename8 = (<unicode>filename).encode('utf8')
* if _isFilePath(<unsigned char*>filename8):
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_7);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1540
+ /* "src/lxml/apihelpers.pxi":1542
* if _isFilePath(<unsigned char*>filename8):
* try:
* return python.PyUnicode_AsEncodedString( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "src/lxml/apihelpers.pxi":1541
+ /* "src/lxml/apihelpers.pxi":1543
* try:
* return python.PyUnicode_AsEncodedString(
* filename, _C_FILENAME_ENCODING, NULL) # <<<<<<<<<<<<<<
* except UnicodeEncodeError:
* pass
*/
- __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1540, __pyx_L5_error)
+ __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1542, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L9_try_return;
- /* "src/lxml/apihelpers.pxi":1539
+ /* "src/lxml/apihelpers.pxi":1541
* filename8 = (<unicode>filename).encode('utf8')
* if _isFilePath(<unsigned char*>filename8):
* try: # <<<<<<<<<<<<<<
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/apihelpers.pxi":1542
+ /* "src/lxml/apihelpers.pxi":1544
* return python.PyUnicode_AsEncodedString(
* filename, _C_FILENAME_ENCODING, NULL)
* except UnicodeEncodeError: # <<<<<<<<<<<<<<
goto __pyx_L7_except_error;
__pyx_L7_except_error:;
- /* "src/lxml/apihelpers.pxi":1539
+ /* "src/lxml/apihelpers.pxi":1541
* filename8 = (<unicode>filename).encode('utf8')
* if _isFilePath(<unsigned char*>filename8):
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
}
- /* "src/lxml/apihelpers.pxi":1538
+ /* "src/lxml/apihelpers.pxi":1540
* elif isinstance(filename, unicode):
* filename8 = (<unicode>filename).encode('utf8')
* if _isFilePath(<unsigned char*>filename8): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1544
+ /* "src/lxml/apihelpers.pxi":1546
* except UnicodeEncodeError:
* pass
* return filename8 # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_filename8;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1536
+ /* "src/lxml/apihelpers.pxi":1538
* elif isinstance(filename, bytes):
* return filename
* elif isinstance(filename, unicode): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1546
+ /* "src/lxml/apihelpers.pxi":1548
* return filename8
* else:
* raise TypeError("Argument must be string or unicode.") # <<<<<<<<<<<<<<
* cdef object _decodeFilename(const_xmlChar* c_path):
*/
/*else*/ {
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1546, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1546, __pyx_L1_error)
+ __PYX_ERR(5, 1548, __pyx_L1_error)
}
- /* "src/lxml/apihelpers.pxi":1529
+ /* "src/lxml/apihelpers.pxi":1531
* return 1
*
* cdef object _encodeFilename(object filename): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1548
+/* "src/lxml/apihelpers.pxi":1550
* raise TypeError("Argument must be string or unicode.")
*
* cdef object _decodeFilename(const_xmlChar* c_path): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_decodeFilename", 0);
- /* "src/lxml/apihelpers.pxi":1551
+ /* "src/lxml/apihelpers.pxi":1553
* u"""Make the filename a unicode string if we are in Py3.
* """
* return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path)) # <<<<<<<<<<<<<<
* cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1551, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1553, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1548
+ /* "src/lxml/apihelpers.pxi":1550
* raise TypeError("Argument must be string or unicode.")
*
* cdef object _decodeFilename(const_xmlChar* c_path): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1553
+/* "src/lxml/apihelpers.pxi":1555
* return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
*
* cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len): # <<<<<<<<<<<<<<
PyObject *__pyx_t_9 = NULL;
__Pyx_RefNannySetupContext("_decodeFilenameWithLength", 0);
- /* "src/lxml/apihelpers.pxi":1556
+ /* "src/lxml/apihelpers.pxi":1558
* u"""Make the filename a unicode string if we are in Py3.
* """
* if _isFilePath(c_path): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1557
+ /* "src/lxml/apihelpers.pxi":1559
* """
* if _isFilePath(c_path):
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_4);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1558
+ /* "src/lxml/apihelpers.pxi":1560
* if _isFilePath(c_path):
* try:
* return python.PyUnicode_Decode( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "src/lxml/apihelpers.pxi":1559
+ /* "src/lxml/apihelpers.pxi":1561
* try:
* return python.PyUnicode_Decode(
* <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL) # <<<<<<<<<<<<<<
* except UnicodeDecodeError:
* pass
*/
- __pyx_t_5 = PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1558, __pyx_L4_error)
+ __pyx_t_5 = PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1560, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L8_try_return;
- /* "src/lxml/apihelpers.pxi":1557
+ /* "src/lxml/apihelpers.pxi":1559
* """
* if _isFilePath(c_path):
* try: # <<<<<<<<<<<<<<
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "src/lxml/apihelpers.pxi":1560
+ /* "src/lxml/apihelpers.pxi":1562
* return python.PyUnicode_Decode(
* <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
goto __pyx_L6_except_error;
__pyx_L6_except_error:;
- /* "src/lxml/apihelpers.pxi":1557
+ /* "src/lxml/apihelpers.pxi":1559
* """
* if _isFilePath(c_path):
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
}
- /* "src/lxml/apihelpers.pxi":1556
+ /* "src/lxml/apihelpers.pxi":1558
* u"""Make the filename a unicode string if we are in Py3.
* """
* if _isFilePath(c_path): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1562
+ /* "src/lxml/apihelpers.pxi":1564
* except UnicodeDecodeError:
* pass
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_2);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1563
+ /* "src/lxml/apihelpers.pxi":1565
* pass
* try:
* return (<unsigned char*>c_path)[:c_len].decode('UTF-8') # <<<<<<<<<<<<<<
* # this is a stupid fallback, but it might still work...
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1563, __pyx_L10_error)
+ __pyx_t_5 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1565, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L14_try_return;
- /* "src/lxml/apihelpers.pxi":1562
+ /* "src/lxml/apihelpers.pxi":1564
* except UnicodeDecodeError:
* pass
* try: # <<<<<<<<<<<<<<
__pyx_L10_error:;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "src/lxml/apihelpers.pxi":1564
+ /* "src/lxml/apihelpers.pxi":1566
* try:
* return (<unsigned char*>c_path)[:c_len].decode('UTF-8')
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
__pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_6) {
__Pyx_AddTraceback("lxml.etree._decodeFilenameWithLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(5, 1564, __pyx_L12_except_error)
+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(5, 1566, __pyx_L12_except_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
- /* "src/lxml/apihelpers.pxi":1566
+ /* "src/lxml/apihelpers.pxi":1568
* except UnicodeDecodeError:
* # this is a stupid fallback, but it might still work...
* return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace') # <<<<<<<<<<<<<<
* cdef object _encodeFilenameUTF8(object filename):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, ((char const *)"replace"), PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1566, __pyx_L12_except_error)
+ __pyx_t_9 = __Pyx_decode_c_string(((char const *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, ((char const *)"replace"), PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1568, __pyx_L12_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L12_except_error;
__pyx_L12_except_error:;
- /* "src/lxml/apihelpers.pxi":1562
+ /* "src/lxml/apihelpers.pxi":1564
* except UnicodeDecodeError:
* pass
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "src/lxml/apihelpers.pxi":1553
+ /* "src/lxml/apihelpers.pxi":1555
* return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
*
* cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1568
+/* "src/lxml/apihelpers.pxi":1570
* return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
*
* cdef object _encodeFilenameUTF8(object filename): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_encodeFilenameUTF8", 0);
__Pyx_INCREF(__pyx_v_filename);
- /* "src/lxml/apihelpers.pxi":1573
+ /* "src/lxml/apihelpers.pxi":1575
* """
* cdef char* c_filename
* if filename is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1574
+ /* "src/lxml/apihelpers.pxi":1576
* cdef char* c_filename
* if filename is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1573
+ /* "src/lxml/apihelpers.pxi":1575
* """
* cdef char* c_filename
* if filename is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1575
+ /* "src/lxml/apihelpers.pxi":1577
* if filename is None:
* return None
* elif isinstance(filename, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1576
+ /* "src/lxml/apihelpers.pxi":1578
* return None
* elif isinstance(filename, bytes):
* if not isutf8l(<bytes>filename, len(<bytes>filename)): # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
- __PYX_ERR(5, 1576, __pyx_L1_error)
+ __PYX_ERR(5, 1578, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_PyBytes_AsUString(__pyx_v_filename); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(5, 1576, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyBytes_AsUString(__pyx_v_filename); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(5, 1578, __pyx_L1_error)
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(5, 1576, __pyx_L1_error)
+ __PYX_ERR(5, 1578, __pyx_L1_error)
}
- __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1576, __pyx_L1_error)
+ __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1578, __pyx_L1_error)
__pyx_t_1 = ((!(__pyx_f_4lxml_5etree_isutf8l(__pyx_t_3, __pyx_t_4) != 0)) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1578
+ /* "src/lxml/apihelpers.pxi":1580
* if not isutf8l(<bytes>filename, len(<bytes>filename)):
* # plain ASCII!
* return filename # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_filename;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1576
+ /* "src/lxml/apihelpers.pxi":1578
* return None
* elif isinstance(filename, bytes):
* if not isutf8l(<bytes>filename, len(<bytes>filename)): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1579
+ /* "src/lxml/apihelpers.pxi":1581
* # plain ASCII!
* return filename
* c_filename = _cstr(<bytes>filename) # <<<<<<<<<<<<<<
*/
__pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename);
- /* "src/lxml/apihelpers.pxi":1580
+ /* "src/lxml/apihelpers.pxi":1582
* return filename
* c_filename = _cstr(<bytes>filename)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_7);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1583
+ /* "src/lxml/apihelpers.pxi":1585
* # try to decode with default encoding
* filename = python.PyUnicode_Decode(
* c_filename, len(<bytes>filename), # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(5, 1583, __pyx_L5_error)
+ __PYX_ERR(5, 1585, __pyx_L5_error)
}
- __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1583, __pyx_L5_error)
+ __pyx_t_4 = PyBytes_GET_SIZE(((PyObject*)__pyx_v_filename)); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1585, __pyx_L5_error)
- /* "src/lxml/apihelpers.pxi":1582
+ /* "src/lxml/apihelpers.pxi":1584
* try:
* # try to decode with default encoding
* filename = python.PyUnicode_Decode( # <<<<<<<<<<<<<<
* c_filename, len(<bytes>filename),
* _C_FILENAME_ENCODING, NULL)
*/
- __pyx_t_8 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_4, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1582, __pyx_L5_error)
+ __pyx_t_8 = PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_4, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1584, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_8);
__pyx_t_8 = 0;
- /* "src/lxml/apihelpers.pxi":1580
+ /* "src/lxml/apihelpers.pxi":1582
* return filename
* c_filename = _cstr(<bytes>filename)
* try: # <<<<<<<<<<<<<<
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- /* "src/lxml/apihelpers.pxi":1585
+ /* "src/lxml/apihelpers.pxi":1587
* c_filename, len(<bytes>filename),
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc: # <<<<<<<<<<<<<<
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_9) {
__Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(5, 1585, __pyx_L7_except_error)
+ if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(5, 1587, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_10);
__Pyx_GOTREF(__pyx_t_11);
__Pyx_INCREF(__pyx_t_10);
__pyx_v_decode_exc = __pyx_t_10;
- /* "src/lxml/apihelpers.pxi":1586
+ /* "src/lxml/apihelpers.pxi":1588
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_14);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1588
+ /* "src/lxml/apihelpers.pxi":1590
* try:
* # try if it's proper UTF-8
* (<bytes>filename).decode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1588, __pyx_L13_error)
+ __PYX_ERR(5, 1590, __pyx_L13_error)
}
- __pyx_t_15 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 1588, __pyx_L13_error)
+ __pyx_t_15 = __Pyx_decode_bytes(((PyObject*)__pyx_v_filename), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 1590, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
- /* "src/lxml/apihelpers.pxi":1589
+ /* "src/lxml/apihelpers.pxi":1591
* # try if it's proper UTF-8
* (<bytes>filename).decode('utf8')
* return filename # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L17_try_return;
- /* "src/lxml/apihelpers.pxi":1586
+ /* "src/lxml/apihelpers.pxi":1588
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc:
* try: # <<<<<<<<<<<<<<
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
- /* "src/lxml/apihelpers.pxi":1590
+ /* "src/lxml/apihelpers.pxi":1592
* (<bytes>filename).decode('utf8')
* return filename
* except UnicodeDecodeError: # <<<<<<<<<<<<<<
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_9) {
__Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(5, 1590, __pyx_L15_except_error)
+ if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0) __PYX_ERR(5, 1592, __pyx_L15_except_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_17);
- /* "src/lxml/apihelpers.pxi":1591
+ /* "src/lxml/apihelpers.pxi":1593
* return filename
* except UnicodeDecodeError:
* raise decode_exc # otherwise re-raise original exception # <<<<<<<<<<<<<<
* return (<unicode>filename).encode('utf8')
*/
__Pyx_Raise(__pyx_v_decode_exc, 0, 0, 0);
- __PYX_ERR(5, 1591, __pyx_L15_except_error)
+ __PYX_ERR(5, 1593, __pyx_L15_except_error)
}
goto __pyx_L15_except_error;
__pyx_L15_except_error:;
- /* "src/lxml/apihelpers.pxi":1586
+ /* "src/lxml/apihelpers.pxi":1588
* _C_FILENAME_ENCODING, NULL)
* except UnicodeDecodeError as decode_exc:
* try: # <<<<<<<<<<<<<<
goto __pyx_L7_except_error;
__pyx_L7_except_error:;
- /* "src/lxml/apihelpers.pxi":1580
+ /* "src/lxml/apihelpers.pxi":1582
* return filename
* c_filename = _cstr(<bytes>filename)
* try: # <<<<<<<<<<<<<<
__pyx_L10_try_end:;
}
- /* "src/lxml/apihelpers.pxi":1575
+ /* "src/lxml/apihelpers.pxi":1577
* if filename is None:
* return None
* elif isinstance(filename, bytes): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1592
+ /* "src/lxml/apihelpers.pxi":1594
* except UnicodeDecodeError:
* raise decode_exc # otherwise re-raise original exception
* if isinstance(filename, unicode): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (likely(__pyx_t_2)) {
- /* "src/lxml/apihelpers.pxi":1593
+ /* "src/lxml/apihelpers.pxi":1595
* raise decode_exc # otherwise re-raise original exception
* if isinstance(filename, unicode):
* return (<unicode>filename).encode('utf8') # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_filename == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode");
- __PYX_ERR(5, 1593, __pyx_L1_error)
+ __PYX_ERR(5, 1595, __pyx_L1_error)
}
- __pyx_t_11 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1593, __pyx_L1_error)
+ __pyx_t_11 = PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1595, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_r = __pyx_t_11;
__pyx_t_11 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1592
+ /* "src/lxml/apihelpers.pxi":1594
* except UnicodeDecodeError:
* raise decode_exc # otherwise re-raise original exception
* if isinstance(filename, unicode): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1595
+ /* "src/lxml/apihelpers.pxi":1597
* return (<unicode>filename).encode('utf8')
* else:
* raise TypeError("Argument must be string or unicode.") # <<<<<<<<<<<<<<
* cdef tuple _getNsTag(tag):
*/
/*else*/ {
- __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1595, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_Raise(__pyx_t_11, 0, 0, 0);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- __PYX_ERR(5, 1595, __pyx_L1_error)
+ __PYX_ERR(5, 1597, __pyx_L1_error)
}
- /* "src/lxml/apihelpers.pxi":1568
+ /* "src/lxml/apihelpers.pxi":1570
* return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
*
* cdef object _encodeFilenameUTF8(object filename): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1597
+/* "src/lxml/apihelpers.pxi":1599
* raise TypeError("Argument must be string or unicode.")
*
* cdef tuple _getNsTag(tag): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_getNsTag", 0);
- /* "src/lxml/apihelpers.pxi":1601
+ /* "src/lxml/apihelpers.pxi":1603
* Return None for NS uri if no namespace URI provided.
* """
* return __getNsTag(tag, 0) # <<<<<<<<<<<<<<
* cdef tuple _getNsTagWithEmptyNs(tag):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1601, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1597
+ /* "src/lxml/apihelpers.pxi":1599
* raise TypeError("Argument must be string or unicode.")
*
* cdef tuple _getNsTag(tag): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1603
+/* "src/lxml/apihelpers.pxi":1605
* return __getNsTag(tag, 0)
*
* cdef tuple _getNsTagWithEmptyNs(tag): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_getNsTagWithEmptyNs", 0);
- /* "src/lxml/apihelpers.pxi":1608
+ /* "src/lxml/apihelpers.pxi":1610
* part is '{}'.
* """
* return __getNsTag(tag, 1) # <<<<<<<<<<<<<<
* cdef tuple __getNsTag(tag, bint empty_ns):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1608, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1603
+ /* "src/lxml/apihelpers.pxi":1605
* return __getNsTag(tag, 0)
*
* cdef tuple _getNsTagWithEmptyNs(tag): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1610
+/* "src/lxml/apihelpers.pxi":1612
* return __getNsTag(tag, 1)
*
* cdef tuple __getNsTag(tag, bint empty_ns): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__getNsTag", 0);
__Pyx_INCREF(__pyx_v_tag);
- /* "src/lxml/apihelpers.pxi":1615
+ /* "src/lxml/apihelpers.pxi":1617
* cdef Py_ssize_t taglen
* cdef Py_ssize_t nslen
* cdef bytes ns = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_ns = ((PyObject*)Py_None);
- /* "src/lxml/apihelpers.pxi":1617
+ /* "src/lxml/apihelpers.pxi":1619
* cdef bytes ns = None
* # _isString() is much faster than isinstance()
* if not _isString(tag) and isinstance(tag, QName): # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1618
+ /* "src/lxml/apihelpers.pxi":1620
* # _isString() is much faster than isinstance()
* if not _isString(tag) and isinstance(tag, QName):
* tag = (<QName>tag).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1617
+ /* "src/lxml/apihelpers.pxi":1619
* cdef bytes ns = None
* # _isString() is much faster than isinstance()
* if not _isString(tag) and isinstance(tag, QName): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1619
+ /* "src/lxml/apihelpers.pxi":1621
* if not _isString(tag) and isinstance(tag, QName):
* tag = (<QName>tag).text
* tag = _utf8(tag) # <<<<<<<<<<<<<<
* c_tag = _cstr(tag)
* if c_tag[0] == c'{':
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1619, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1621, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1620
+ /* "src/lxml/apihelpers.pxi":1622
* tag = (<QName>tag).text
* tag = _utf8(tag)
* c_tag = _cstr(tag) # <<<<<<<<<<<<<<
*/
__pyx_v_c_tag = PyBytes_AS_STRING(__pyx_v_tag);
- /* "src/lxml/apihelpers.pxi":1621
+ /* "src/lxml/apihelpers.pxi":1623
* tag = _utf8(tag)
* c_tag = _cstr(tag)
* if c_tag[0] == c'{': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_tag[0]) == '{') != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1622
+ /* "src/lxml/apihelpers.pxi":1624
* c_tag = _cstr(tag)
* if c_tag[0] == c'{':
* c_tag += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_tag = (__pyx_v_c_tag + 1);
- /* "src/lxml/apihelpers.pxi":1623
+ /* "src/lxml/apihelpers.pxi":1625
* if c_tag[0] == c'{':
* c_tag += 1
* c_ns_end = cstring_h.strchr(c_tag, c'}') # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns_end = strchr(__pyx_v_c_tag, '}');
- /* "src/lxml/apihelpers.pxi":1624
+ /* "src/lxml/apihelpers.pxi":1626
* c_tag += 1
* c_ns_end = cstring_h.strchr(c_tag, c'}')
* if c_ns_end is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_ns_end == NULL) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1625
+ /* "src/lxml/apihelpers.pxi":1627
* c_ns_end = cstring_h.strchr(c_tag, c'}')
* if c_ns_end is NULL:
* raise ValueError, u"Invalid tag name" # <<<<<<<<<<<<<<
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Invalid_tag_name, 0, 0);
- __PYX_ERR(5, 1625, __pyx_L1_error)
+ __PYX_ERR(5, 1627, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1624
+ /* "src/lxml/apihelpers.pxi":1626
* c_tag += 1
* c_ns_end = cstring_h.strchr(c_tag, c'}')
* if c_ns_end is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1626
+ /* "src/lxml/apihelpers.pxi":1628
* if c_ns_end is NULL:
* raise ValueError, u"Invalid tag name"
* nslen = c_ns_end - c_tag # <<<<<<<<<<<<<<
*/
__pyx_v_nslen = (__pyx_v_c_ns_end - __pyx_v_c_tag);
- /* "src/lxml/apihelpers.pxi":1627
+ /* "src/lxml/apihelpers.pxi":1629
* raise ValueError, u"Invalid tag name"
* nslen = c_ns_end - c_tag
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2 # <<<<<<<<<<<<<<
*/
__pyx_v_taglen = ((PyBytes_GET_SIZE(__pyx_v_tag) - __pyx_v_nslen) - 2);
- /* "src/lxml/apihelpers.pxi":1628
+ /* "src/lxml/apihelpers.pxi":1630
* nslen = c_ns_end - c_tag
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
* if taglen == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_taglen == 0) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1629
+ /* "src/lxml/apihelpers.pxi":1631
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
* if taglen == 0:
* raise ValueError, u"Empty tag name" # <<<<<<<<<<<<<<
* ns = <bytes>c_tag[:nslen]
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Empty_tag_name, 0, 0);
- __PYX_ERR(5, 1629, __pyx_L1_error)
+ __PYX_ERR(5, 1631, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1628
+ /* "src/lxml/apihelpers.pxi":1630
* nslen = c_ns_end - c_tag
* taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
* if taglen == 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1630
+ /* "src/lxml/apihelpers.pxi":1632
* if taglen == 0:
* raise ValueError, u"Empty tag name"
* if nslen > 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_nslen > 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1631
+ /* "src/lxml/apihelpers.pxi":1633
* raise ValueError, u"Empty tag name"
* if nslen > 0:
* ns = <bytes>c_tag[:nslen] # <<<<<<<<<<<<<<
* elif empty_ns:
* ns = b''
*/
- __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1631, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1633, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
- /* "src/lxml/apihelpers.pxi":1630
+ /* "src/lxml/apihelpers.pxi":1632
* if taglen == 0:
* raise ValueError, u"Empty tag name"
* if nslen > 0: # <<<<<<<<<<<<<<
goto __pyx_L9;
}
- /* "src/lxml/apihelpers.pxi":1632
+ /* "src/lxml/apihelpers.pxi":1634
* if nslen > 0:
* ns = <bytes>c_tag[:nslen]
* elif empty_ns: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_empty_ns != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1633
+ /* "src/lxml/apihelpers.pxi":1635
* ns = <bytes>c_tag[:nslen]
* elif empty_ns:
* ns = b'' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_kp_b__11);
__Pyx_DECREF_SET(__pyx_v_ns, __pyx_kp_b__11);
- /* "src/lxml/apihelpers.pxi":1632
+ /* "src/lxml/apihelpers.pxi":1634
* if nslen > 0:
* ns = <bytes>c_tag[:nslen]
* elif empty_ns: # <<<<<<<<<<<<<<
}
__pyx_L9:;
- /* "src/lxml/apihelpers.pxi":1634
+ /* "src/lxml/apihelpers.pxi":1636
* elif empty_ns:
* ns = b''
* tag = <bytes>c_ns_end[1:taglen+1] # <<<<<<<<<<<<<<
* elif python.PyBytes_GET_SIZE(tag) == 0:
* raise ValueError, u"Empty tag name"
*/
- __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1634, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __pyx_t_5;
__Pyx_INCREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1621
+ /* "src/lxml/apihelpers.pxi":1623
* tag = _utf8(tag)
* c_tag = _cstr(tag)
* if c_tag[0] == c'{': # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/apihelpers.pxi":1635
+ /* "src/lxml/apihelpers.pxi":1637
* ns = b''
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((PyBytes_GET_SIZE(__pyx_v_tag) == 0) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1636
+ /* "src/lxml/apihelpers.pxi":1638
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0:
* raise ValueError, u"Empty tag name" # <<<<<<<<<<<<<<
*
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Empty_tag_name, 0, 0);
- __PYX_ERR(5, 1636, __pyx_L1_error)
+ __PYX_ERR(5, 1638, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1635
+ /* "src/lxml/apihelpers.pxi":1637
* ns = b''
* tag = <bytes>c_ns_end[1:taglen+1]
* elif python.PyBytes_GET_SIZE(tag) == 0: # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "src/lxml/apihelpers.pxi":1637
+ /* "src/lxml/apihelpers.pxi":1639
* elif python.PyBytes_GET_SIZE(tag) == 0:
* raise ValueError, u"Empty tag name"
* return ns, tag # <<<<<<<<<<<<<<
* cdef inline int _pyXmlNameIsValid(name_utf8):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1637, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_ns);
__Pyx_GIVEREF(__pyx_v_ns);
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1610
+ /* "src/lxml/apihelpers.pxi":1612
* return __getNsTag(tag, 1)
*
* cdef tuple __getNsTag(tag, bint empty_ns): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1639
+/* "src/lxml/apihelpers.pxi":1641
* return ns, tag
*
* cdef inline int _pyXmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_pyXmlNameIsValid", 0);
- /* "src/lxml/apihelpers.pxi":1640
+ /* "src/lxml/apihelpers.pxi":1642
*
* cdef inline int _pyXmlNameIsValid(name_utf8):
* return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8 # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_2;
goto __pyx_L3_bool_binop_done;
}
- __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__16, __pyx_v_name_utf8, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 1640, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__16, __pyx_v_name_utf8, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(5, 1642, __pyx_L1_error)
__pyx_t_1 = __pyx_t_3;
__pyx_L3_bool_binop_done:;
__pyx_r = __pyx_t_1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1639
+ /* "src/lxml/apihelpers.pxi":1641
* return ns, tag
*
* cdef inline int _pyXmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1642
+/* "src/lxml/apihelpers.pxi":1644
* return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8
*
* cdef inline int _pyHtmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_pyHtmlNameIsValid", 0);
- /* "src/lxml/apihelpers.pxi":1643
+ /* "src/lxml/apihelpers.pxi":1645
*
* cdef inline int _pyHtmlNameIsValid(name_utf8):
* return _htmlNameIsValid(_xcstr(name_utf8)) # <<<<<<<<<<<<<<
__pyx_r = __pyx_f_4lxml_5etree__htmlNameIsValid((const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf8));
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1642
+ /* "src/lxml/apihelpers.pxi":1644
* return _xmlNameIsValid(_xcstr(name_utf8)) and b':' not in name_utf8
*
* cdef inline int _pyHtmlNameIsValid(name_utf8): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1645
+/* "src/lxml/apihelpers.pxi":1647
* return _htmlNameIsValid(_xcstr(name_utf8))
*
* cdef inline int _xmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_xmlNameIsValid", 0);
- /* "src/lxml/apihelpers.pxi":1646
+ /* "src/lxml/apihelpers.pxi":1648
*
* cdef inline int _xmlNameIsValid(const_xmlChar* c_name):
* return tree.xmlValidateNameValue(c_name) # <<<<<<<<<<<<<<
__pyx_r = xmlValidateNameValue(__pyx_v_c_name);
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1645
+ /* "src/lxml/apihelpers.pxi":1647
* return _htmlNameIsValid(_xcstr(name_utf8))
*
* cdef inline int _xmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1648
+/* "src/lxml/apihelpers.pxi":1650
* return tree.xmlValidateNameValue(c_name)
*
* cdef int _htmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("_htmlNameIsValid", 0);
- /* "src/lxml/apihelpers.pxi":1649
+ /* "src/lxml/apihelpers.pxi":1651
*
* cdef int _htmlNameIsValid(const_xmlChar* c_name):
* if c_name is NULL or c_name[0] == c'\0': # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1650
+ /* "src/lxml/apihelpers.pxi":1652
* cdef int _htmlNameIsValid(const_xmlChar* c_name):
* if c_name is NULL or c_name[0] == c'\0':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1649
+ /* "src/lxml/apihelpers.pxi":1651
*
* cdef int _htmlNameIsValid(const_xmlChar* c_name):
* if c_name is NULL or c_name[0] == c'\0': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1651
+ /* "src/lxml/apihelpers.pxi":1653
* if c_name is NULL or c_name[0] == c'\0':
* return 0
* while c_name[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/apihelpers.pxi":1652
+ /* "src/lxml/apihelpers.pxi":1654
* return 0
* while c_name[0] != c'\0':
* if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ': # <<<<<<<<<<<<<<
case '<':
case '>':
- /* "src/lxml/apihelpers.pxi":1653
+ /* "src/lxml/apihelpers.pxi":1655
* while c_name[0] != c'\0':
* if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1652
+ /* "src/lxml/apihelpers.pxi":1654
* return 0
* while c_name[0] != c'\0':
* if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ': # <<<<<<<<<<<<<<
default: break;
}
- /* "src/lxml/apihelpers.pxi":1654
+ /* "src/lxml/apihelpers.pxi":1656
* if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
* return 0
* c_name += 1 # <<<<<<<<<<<<<<
__pyx_v_c_name = (__pyx_v_c_name + 1);
}
- /* "src/lxml/apihelpers.pxi":1655
+ /* "src/lxml/apihelpers.pxi":1657
* return 0
* c_name += 1
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1648
+ /* "src/lxml/apihelpers.pxi":1650
* return tree.xmlValidateNameValue(c_name)
*
* cdef int _htmlNameIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1657
+/* "src/lxml/apihelpers.pxi":1659
* return 1
*
* cdef bint _characterReferenceIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("_characterReferenceIsValid", 0);
- /* "src/lxml/apihelpers.pxi":1659
+ /* "src/lxml/apihelpers.pxi":1661
* cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
* cdef bint is_hex
* if c_name[0] == c'x': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name[0]) == 'x') != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1660
+ /* "src/lxml/apihelpers.pxi":1662
* cdef bint is_hex
* if c_name[0] == c'x':
* c_name += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_name = (__pyx_v_c_name + 1);
- /* "src/lxml/apihelpers.pxi":1661
+ /* "src/lxml/apihelpers.pxi":1663
* if c_name[0] == c'x':
* c_name += 1
* is_hex = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_hex = 1;
- /* "src/lxml/apihelpers.pxi":1659
+ /* "src/lxml/apihelpers.pxi":1661
* cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
* cdef bint is_hex
* if c_name[0] == c'x': # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/apihelpers.pxi":1663
+ /* "src/lxml/apihelpers.pxi":1665
* is_hex = 1
* else:
* is_hex = 0 # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "src/lxml/apihelpers.pxi":1664
+ /* "src/lxml/apihelpers.pxi":1666
* else:
* is_hex = 0
* if c_name[0] == c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name[0]) == '\x00') != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1665
+ /* "src/lxml/apihelpers.pxi":1667
* is_hex = 0
* if c_name[0] == c'\0':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1664
+ /* "src/lxml/apihelpers.pxi":1666
* else:
* is_hex = 0
* if c_name[0] == c'\0': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1666
+ /* "src/lxml/apihelpers.pxi":1668
* if c_name[0] == c'\0':
* return 0
* while c_name[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/apihelpers.pxi":1667
+ /* "src/lxml/apihelpers.pxi":1669
* return 0
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9': # <<<<<<<<<<<<<<
__pyx_L8_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1668
+ /* "src/lxml/apihelpers.pxi":1670
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9':
* if not is_hex: # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_v_is_hex != 0)) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1669
+ /* "src/lxml/apihelpers.pxi":1671
* if c_name[0] < c'0' or c_name[0] > c'9':
* if not is_hex:
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1668
+ /* "src/lxml/apihelpers.pxi":1670
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9':
* if not is_hex: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1670
+ /* "src/lxml/apihelpers.pxi":1672
* if not is_hex:
* return 0
* if not (c'a' <= c_name[0] <= c'f'): # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
if (__pyx_t_2) {
- /* "src/lxml/apihelpers.pxi":1671
+ /* "src/lxml/apihelpers.pxi":1673
* return 0
* if not (c'a' <= c_name[0] <= c'f'):
* if not (c'A' <= c_name[0] <= c'F'): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1672
+ /* "src/lxml/apihelpers.pxi":1674
* if not (c'a' <= c_name[0] <= c'f'):
* if not (c'A' <= c_name[0] <= c'F'):
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1671
+ /* "src/lxml/apihelpers.pxi":1673
* return 0
* if not (c'a' <= c_name[0] <= c'f'):
* if not (c'A' <= c_name[0] <= c'F'): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1670
+ /* "src/lxml/apihelpers.pxi":1672
* if not is_hex:
* return 0
* if not (c'a' <= c_name[0] <= c'f'): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1667
+ /* "src/lxml/apihelpers.pxi":1669
* return 0
* while c_name[0] != c'\0':
* if c_name[0] < c'0' or c_name[0] > c'9': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1673
+ /* "src/lxml/apihelpers.pxi":1675
* if not (c'A' <= c_name[0] <= c'F'):
* return 0
* c_name += 1 # <<<<<<<<<<<<<<
__pyx_v_c_name = (__pyx_v_c_name + 1);
}
- /* "src/lxml/apihelpers.pxi":1674
+ /* "src/lxml/apihelpers.pxi":1676
* return 0
* c_name += 1
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1657
+ /* "src/lxml/apihelpers.pxi":1659
* return 1
*
* cdef bint _characterReferenceIsValid(const_xmlChar* c_name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1676
+/* "src/lxml/apihelpers.pxi":1678
* return 1
*
* cdef int _tagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_tagValidOrRaise", 0);
- /* "src/lxml/apihelpers.pxi":1677
+ /* "src/lxml/apihelpers.pxi":1679
*
* cdef int _tagValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1678
+ /* "src/lxml/apihelpers.pxi":1680
* cdef int _tagValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid tag name {(<bytes>tag_utf).decode('utf8')!r}") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1678, __pyx_L1_error)
+ __PYX_ERR(5, 1680, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1678, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1680, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1678, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1680, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_tag_name_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1678, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_tag_name_2, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1680, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1678, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1680, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1678, __pyx_L1_error)
+ __PYX_ERR(5, 1680, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1677
+ /* "src/lxml/apihelpers.pxi":1679
*
* cdef int _tagValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1679
+ /* "src/lxml/apihelpers.pxi":1681
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid tag name {(<bytes>tag_utf).decode('utf8')!r}")
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1676
+ /* "src/lxml/apihelpers.pxi":1678
* return 1
*
* cdef int _tagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1681
+/* "src/lxml/apihelpers.pxi":1683
* return 0
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_htmlTagValidOrRaise", 0);
- /* "src/lxml/apihelpers.pxi":1682
+ /* "src/lxml/apihelpers.pxi":1684
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1:
* if not _pyHtmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1683
+ /* "src/lxml/apihelpers.pxi":1685
* cdef int _htmlTagValidOrRaise(tag_utf) except -1:
* if not _pyHtmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid HTML tag name {(<bytes>tag_utf).decode('utf8')!r}") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1683, __pyx_L1_error)
+ __PYX_ERR(5, 1685, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1683, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1683, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_HTML_tag_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1683, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_HTML_tag_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1683, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1683, __pyx_L1_error)
+ __PYX_ERR(5, 1685, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1682
+ /* "src/lxml/apihelpers.pxi":1684
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1:
* if not _pyHtmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1684
+ /* "src/lxml/apihelpers.pxi":1686
* if not _pyHtmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid HTML tag name {(<bytes>tag_utf).decode('utf8')!r}")
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1681
+ /* "src/lxml/apihelpers.pxi":1683
* return 0
*
* cdef int _htmlTagValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1686
+/* "src/lxml/apihelpers.pxi":1688
* return 0
*
* cdef int _attributeValidOrRaise(name_utf) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_attributeValidOrRaise", 0);
- /* "src/lxml/apihelpers.pxi":1687
+ /* "src/lxml/apihelpers.pxi":1689
*
* cdef int _attributeValidOrRaise(name_utf) except -1:
* if not _pyXmlNameIsValid(name_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf) != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1688
+ /* "src/lxml/apihelpers.pxi":1690
* cdef int _attributeValidOrRaise(name_utf) except -1:
* if not _pyXmlNameIsValid(name_utf):
* raise ValueError(f"Invalid attribute name {(<bytes>name_utf).decode('utf8')!r}") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_name_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1688, __pyx_L1_error)
+ __PYX_ERR(5, 1690, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1688, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1688, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1688, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_attribute_name, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1688, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1688, __pyx_L1_error)
+ __PYX_ERR(5, 1690, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1687
+ /* "src/lxml/apihelpers.pxi":1689
*
* cdef int _attributeValidOrRaise(name_utf) except -1:
* if not _pyXmlNameIsValid(name_utf): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1689
+ /* "src/lxml/apihelpers.pxi":1691
* if not _pyXmlNameIsValid(name_utf):
* raise ValueError(f"Invalid attribute name {(<bytes>name_utf).decode('utf8')!r}")
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1686
+ /* "src/lxml/apihelpers.pxi":1688
* return 0
*
* cdef int _attributeValidOrRaise(name_utf) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1691
+/* "src/lxml/apihelpers.pxi":1693
* return 0
*
* cdef int _prefixValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_prefixValidOrRaise", 0);
- /* "src/lxml/apihelpers.pxi":1692
+ /* "src/lxml/apihelpers.pxi":1694
*
* cdef int _prefixValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1693
+ /* "src/lxml/apihelpers.pxi":1695
* cdef int _prefixValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid namespace prefix {(<bytes>tag_utf).decode('utf8')!r}") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1693, __pyx_L1_error)
+ __PYX_ERR(5, 1695, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1693, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1693, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_prefix, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1693, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_prefix, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1693, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1693, __pyx_L1_error)
+ __PYX_ERR(5, 1695, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1692
+ /* "src/lxml/apihelpers.pxi":1694
*
* cdef int _prefixValidOrRaise(tag_utf) except -1:
* if not _pyXmlNameIsValid(tag_utf): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1694
+ /* "src/lxml/apihelpers.pxi":1696
* if not _pyXmlNameIsValid(tag_utf):
* raise ValueError(f"Invalid namespace prefix {(<bytes>tag_utf).decode('utf8')!r}")
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1691
+ /* "src/lxml/apihelpers.pxi":1693
* return 0
*
* cdef int _prefixValidOrRaise(tag_utf) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1696
+/* "src/lxml/apihelpers.pxi":1698
* return 0
*
* cdef int _uriValidOrRaise(uri_utf) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_uriValidOrRaise", 0);
- /* "src/lxml/apihelpers.pxi":1697
+ /* "src/lxml/apihelpers.pxi":1699
*
* cdef int _uriValidOrRaise(uri_utf) except -1:
* cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf)) # <<<<<<<<<<<<<<
*/
__pyx_v_c_uri = xmlParseURI(PyBytes_AS_STRING(__pyx_v_uri_utf));
- /* "src/lxml/apihelpers.pxi":1698
+ /* "src/lxml/apihelpers.pxi":1700
* cdef int _uriValidOrRaise(uri_utf) except -1:
* cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
* if c_uri is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
if (unlikely(__pyx_t_1)) {
- /* "src/lxml/apihelpers.pxi":1699
+ /* "src/lxml/apihelpers.pxi":1701
* cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
* if c_uri is NULL:
* raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_uri_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1699, __pyx_L1_error)
+ __PYX_ERR(5, 1701, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_uri_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1699, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_uri_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1699, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_t_2), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_URI, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1699, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_namespace_URI, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1699, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(5, 1699, __pyx_L1_error)
+ __PYX_ERR(5, 1701, __pyx_L1_error)
- /* "src/lxml/apihelpers.pxi":1698
+ /* "src/lxml/apihelpers.pxi":1700
* cdef int _uriValidOrRaise(uri_utf) except -1:
* cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
* if c_uri is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1700
+ /* "src/lxml/apihelpers.pxi":1702
* if c_uri is NULL:
* raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}")
* uri.xmlFreeURI(c_uri) # <<<<<<<<<<<<<<
*/
xmlFreeURI(__pyx_v_c_uri);
- /* "src/lxml/apihelpers.pxi":1701
+ /* "src/lxml/apihelpers.pxi":1703
* raise ValueError(f"Invalid namespace URI {(<bytes>uri_utf).decode('utf8')!r}")
* uri.xmlFreeURI(c_uri)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1696
+ /* "src/lxml/apihelpers.pxi":1698
* return 0
*
* cdef int _uriValidOrRaise(uri_utf) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1703
+/* "src/lxml/apihelpers.pxi":1705
* return 0
*
* cdef inline object _namespacedName(xmlNode* c_node): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_namespacedName", 0);
- /* "src/lxml/apihelpers.pxi":1704
+ /* "src/lxml/apihelpers.pxi":1706
*
* cdef inline object _namespacedName(xmlNode* c_node):
* return _namespacedNameFromNsName(_getNs(c_node), c_node.name) # <<<<<<<<<<<<<<
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1704, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1706, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1703
+ /* "src/lxml/apihelpers.pxi":1705
* return 0
*
* cdef inline object _namespacedName(xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1706
+/* "src/lxml/apihelpers.pxi":1708
* return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name): # <<<<<<<<<<<<<<
Py_ssize_t __pyx_t_5;
__Pyx_RefNannySetupContext("_namespacedNameFromNsName", 0);
- /* "src/lxml/apihelpers.pxi":1707
+ /* "src/lxml/apihelpers.pxi":1709
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
* if href is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_href == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1708
+ /* "src/lxml/apihelpers.pxi":1710
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
* if href is NULL:
* return funicode(name) # <<<<<<<<<<<<<<
* return python.PyUnicode_FromFormat("{%s}%s", href, name)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1708, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1710, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1707
+ /* "src/lxml/apihelpers.pxi":1709
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
* if href is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1709
+ /* "src/lxml/apihelpers.pxi":1711
* if href is NULL:
* return funicode(name)
* elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)): # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1710
+ /* "src/lxml/apihelpers.pxi":1712
* return funicode(name)
* elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)):
* return python.PyUnicode_FromFormat("{%s}%s", href, name) # <<<<<<<<<<<<<<
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyUnicode_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1710, __pyx_L1_error)
+ __pyx_t_2 = PyUnicode_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1709
+ /* "src/lxml/apihelpers.pxi":1711
* if href is NULL:
* return funicode(name)
* elif not python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8(name) or isutf8(href)): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1712
+ /* "src/lxml/apihelpers.pxi":1714
* return python.PyUnicode_FromFormat("{%s}%s", href, name)
* else:
* s = python.PyBytes_FromFormat("{%s}%s", href, name) # <<<<<<<<<<<<<<
* return (<bytes>s).decode('utf8')
*/
/*else*/ {
- __pyx_t_2 = PyBytes_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1712, __pyx_L1_error)
+ __pyx_t_2 = PyBytes_FromFormat(((char *)"{%s}%s"), __pyx_v_href, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_s = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
- /* "src/lxml/apihelpers.pxi":1713
+ /* "src/lxml/apihelpers.pxi":1715
* else:
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
* if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))): # <<<<<<<<<<<<<<
}
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
- __PYX_ERR(5, 1713, __pyx_L1_error)
+ __PYX_ERR(5, 1715, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyBytes_AsUString(__pyx_v_s); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1713, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyBytes_AsUString(__pyx_v_s); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(5, 1715, __pyx_L1_error)
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(5, 1713, __pyx_L1_error)
+ __PYX_ERR(5, 1715, __pyx_L1_error)
}
- __pyx_t_5 = PyBytes_GET_SIZE(__pyx_v_s); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1713, __pyx_L1_error)
+ __pyx_t_5 = PyBytes_GET_SIZE(__pyx_v_s); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(5, 1715, __pyx_L1_error)
__pyx_t_3 = (__pyx_f_4lxml_5etree_isutf8l(__pyx_t_4, __pyx_t_5) != 0);
__pyx_t_1 = __pyx_t_3;
__pyx_L9_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/apihelpers.pxi":1714
+ /* "src/lxml/apihelpers.pxi":1716
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
* if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))):
* return (<bytes>s).decode('utf8') # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_s == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(5, 1714, __pyx_L1_error)
+ __PYX_ERR(5, 1716, __pyx_L1_error)
}
- __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_s), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1714, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_decode_bytes(((PyObject*)__pyx_v_s), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 1716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1713
+ /* "src/lxml/apihelpers.pxi":1715
* else:
* s = python.PyBytes_FromFormat("{%s}%s", href, name)
* if python.IS_PYPY and (python.LXML_UNICODE_STRINGS or isutf8l(s, len(s))): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1716
+ /* "src/lxml/apihelpers.pxi":1718
* return (<bytes>s).decode('utf8')
* else:
* return s # <<<<<<<<<<<<<<
}
}
- /* "src/lxml/apihelpers.pxi":1706
+ /* "src/lxml/apihelpers.pxi":1708
* return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
*
* cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/apihelpers.pxi":1718
+/* "src/lxml/apihelpers.pxi":1720
* return s
*
* cdef _getFilenameForFile(source): # <<<<<<<<<<<<<<
int __pyx_t_7;
__Pyx_RefNannySetupContext("_getFilenameForFile", 0);
- /* "src/lxml/apihelpers.pxi":1724
+ /* "src/lxml/apihelpers.pxi":1726
* """
* # urllib2 provides a geturl() method
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1725
+ /* "src/lxml/apihelpers.pxi":1727
* # urllib2 provides a geturl() method
* try:
* return source.geturl() # <<<<<<<<<<<<<<
* pass
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1725, __pyx_L3_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_geturl); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1727, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1725, __pyx_L3_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1727, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L7_try_return;
- /* "src/lxml/apihelpers.pxi":1724
+ /* "src/lxml/apihelpers.pxi":1726
* """
* # urllib2 provides a geturl() method
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "src/lxml/apihelpers.pxi":1726
+ /* "src/lxml/apihelpers.pxi":1728
* try:
* return source.geturl()
* except: # <<<<<<<<<<<<<<
}
__pyx_L7_try_return:;
- /* "src/lxml/apihelpers.pxi":1724
+ /* "src/lxml/apihelpers.pxi":1726
* """
* # urllib2 provides a geturl() method
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
}
- /* "src/lxml/apihelpers.pxi":1729
+ /* "src/lxml/apihelpers.pxi":1731
* pass
* # file instances have a name attribute
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_1);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1730
+ /* "src/lxml/apihelpers.pxi":1732
* # file instances have a name attribute
* try:
* filename = source.name # <<<<<<<<<<<<<<
* if _isString(filename):
* return os_path_abspath(filename)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1730, __pyx_L9_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1732, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_filename = __pyx_t_4;
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1731
+ /* "src/lxml/apihelpers.pxi":1733
* try:
* filename = source.name
* if _isString(filename): # <<<<<<<<<<<<<<
__pyx_t_7 = (_isString(__pyx_v_filename) != 0);
if (__pyx_t_7) {
- /* "src/lxml/apihelpers.pxi":1732
+ /* "src/lxml/apihelpers.pxi":1734
* filename = source.name
* if _isString(filename):
* return os_path_abspath(filename) # <<<<<<<<<<<<<<
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_filename);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1732, __pyx_L9_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1734, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L13_try_return;
- /* "src/lxml/apihelpers.pxi":1731
+ /* "src/lxml/apihelpers.pxi":1733
* try:
* filename = source.name
* if _isString(filename): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1729
+ /* "src/lxml/apihelpers.pxi":1731
* pass
* # file instances have a name attribute
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "src/lxml/apihelpers.pxi":1733
+ /* "src/lxml/apihelpers.pxi":1735
* if _isString(filename):
* return os_path_abspath(filename)
* except: # <<<<<<<<<<<<<<
}
__pyx_L13_try_return:;
- /* "src/lxml/apihelpers.pxi":1729
+ /* "src/lxml/apihelpers.pxi":1731
* pass
* # file instances have a name attribute
* try: # <<<<<<<<<<<<<<
__pyx_L14_try_end:;
}
- /* "src/lxml/apihelpers.pxi":1736
+ /* "src/lxml/apihelpers.pxi":1738
* pass
* # gzip file instances have a filename attribute (before Py3k)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "src/lxml/apihelpers.pxi":1737
+ /* "src/lxml/apihelpers.pxi":1739
* # gzip file instances have a filename attribute (before Py3k)
* try:
* filename = source.filename # <<<<<<<<<<<<<<
* if _isString(filename):
* return os_path_abspath(filename)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1737, __pyx_L16_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_filename); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1739, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/apihelpers.pxi":1738
+ /* "src/lxml/apihelpers.pxi":1740
* try:
* filename = source.filename
* if _isString(filename): # <<<<<<<<<<<<<<
__pyx_t_7 = (_isString(__pyx_v_filename) != 0);
if (__pyx_t_7) {
- /* "src/lxml/apihelpers.pxi":1739
+ /* "src/lxml/apihelpers.pxi":1741
* filename = source.filename
* if _isString(filename):
* return os_path_abspath(filename) # <<<<<<<<<<<<<<
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_filename) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_filename);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1739, __pyx_L16_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 1741, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L20_try_return;
- /* "src/lxml/apihelpers.pxi":1738
+ /* "src/lxml/apihelpers.pxi":1740
* try:
* filename = source.filename
* if _isString(filename): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/apihelpers.pxi":1736
+ /* "src/lxml/apihelpers.pxi":1738
* pass
* # gzip file instances have a filename attribute (before Py3k)
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "src/lxml/apihelpers.pxi":1740
+ /* "src/lxml/apihelpers.pxi":1742
* if _isString(filename):
* return os_path_abspath(filename)
* except: # <<<<<<<<<<<<<<
}
__pyx_L20_try_return:;
- /* "src/lxml/apihelpers.pxi":1736
+ /* "src/lxml/apihelpers.pxi":1738
* pass
* # gzip file instances have a filename attribute (before Py3k)
* try: # <<<<<<<<<<<<<<
__pyx_L21_try_end:;
}
- /* "src/lxml/apihelpers.pxi":1743
+ /* "src/lxml/apihelpers.pxi":1745
* pass
* # can't determine filename
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/apihelpers.pxi":1718
+ /* "src/lxml/apihelpers.pxi":1720
* return s
*
* cdef _getFilenameForFile(source): # <<<<<<<<<<<<<<
* self.filename, self.line, self.column, self.level_name,
* self.domain_name, self.type_name, self.message) # <<<<<<<<<<<<<<
*
- * property domain_name:
+ * @property
*/
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_domain_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":118
+/* "src/lxml/xmlerror.pxi":116
+ *
+ * @property
+ * def domain_name(self): # <<<<<<<<<<<<<<
* """The name of the error domain. See lxml.etree.ErrorDomains
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ErrorDomains._getName(self.domain, u"unknown")
- *
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xmlerror.pxi":119
+ * """The name of the error domain. See lxml.etree.ErrorDomains
* """
- * def __get__(self):
- * return ErrorDomains._getName(self.domain, u"unknown") # <<<<<<<<<<<<<<
+ * return ErrorDomains._getName(self.domain, u"unknown") # <<<<<<<<<<<<<<
*
- * property type_name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorDomains); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 119, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":118
+ /* "src/lxml/xmlerror.pxi":116
+ *
+ * @property
+ * def domain_name(self): # <<<<<<<<<<<<<<
* """The name of the error domain. See lxml.etree.ErrorDomains
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ErrorDomains._getName(self.domain, u"unknown")
- *
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":124
+/* "src/lxml/xmlerror.pxi":122
+ *
+ * @property
+ * def type_name(self): # <<<<<<<<<<<<<<
* """The name of the error type. See lxml.etree.ErrorTypes
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self.domain == ErrorDomains.RELAXNGV:
- * getName = RelaxNGErrorTypes._getName
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xmlerror.pxi":125
+ * """The name of the error type. See lxml.etree.ErrorTypes
* """
- * def __get__(self):
- * if self.domain == ErrorDomains.RELAXNGV: # <<<<<<<<<<<<<<
- * getName = RelaxNGErrorTypes._getName
- * else:
+ * if self.domain == ErrorDomains.RELAXNGV: # <<<<<<<<<<<<<<
+ * getName = RelaxNGErrorTypes._getName
+ * else:
*/
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->domain); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 125, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (__pyx_t_4) {
/* "src/lxml/xmlerror.pxi":126
- * def __get__(self):
- * if self.domain == ErrorDomains.RELAXNGV:
- * getName = RelaxNGErrorTypes._getName # <<<<<<<<<<<<<<
- * else:
- * getName = ErrorTypes._getName
+ * """
+ * if self.domain == ErrorDomains.RELAXNGV:
+ * getName = RelaxNGErrorTypes._getName # <<<<<<<<<<<<<<
+ * else:
+ * getName = ErrorTypes._getName
*/
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RelaxNGErrorTypes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 126, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = 0;
/* "src/lxml/xmlerror.pxi":125
+ * """The name of the error type. See lxml.etree.ErrorTypes
* """
- * def __get__(self):
- * if self.domain == ErrorDomains.RELAXNGV: # <<<<<<<<<<<<<<
- * getName = RelaxNGErrorTypes._getName
- * else:
+ * if self.domain == ErrorDomains.RELAXNGV: # <<<<<<<<<<<<<<
+ * getName = RelaxNGErrorTypes._getName
+ * else:
*/
goto __pyx_L3;
}
/* "src/lxml/xmlerror.pxi":128
- * getName = RelaxNGErrorTypes._getName
- * else:
- * getName = ErrorTypes._getName # <<<<<<<<<<<<<<
- * return getName(self.type, u"unknown")
+ * getName = RelaxNGErrorTypes._getName
+ * else:
+ * getName = ErrorTypes._getName # <<<<<<<<<<<<<<
+ * return getName(self.type, u"unknown")
*
*/
/*else*/ {
__pyx_L3:;
/* "src/lxml/xmlerror.pxi":129
- * else:
- * getName = ErrorTypes._getName
- * return getName(self.type, u"unknown") # <<<<<<<<<<<<<<
+ * else:
+ * getName = ErrorTypes._getName
+ * return getName(self.type, u"unknown") # <<<<<<<<<<<<<<
*
- * property level_name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 129, __pyx_L1_error)
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":124
+ /* "src/lxml/xmlerror.pxi":122
+ *
+ * @property
+ * def type_name(self): # <<<<<<<<<<<<<<
* """The name of the error type. See lxml.etree.ErrorTypes
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self.domain == ErrorDomains.RELAXNGV:
- * getName = RelaxNGErrorTypes._getName
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":134
+/* "src/lxml/xmlerror.pxi":132
+ *
+ * @property
+ * def level_name(self): # <<<<<<<<<<<<<<
* """The name of the error level. See lxml.etree.ErrorLevels
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ErrorLevels._getName(self.level, u"unknown")
- *
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xmlerror.pxi":135
+ * """The name of the error level. See lxml.etree.ErrorLevels
* """
- * def __get__(self):
- * return ErrorLevels._getName(self.level, u"unknown") # <<<<<<<<<<<<<<
+ * return ErrorLevels._getName(self.level, u"unknown") # <<<<<<<<<<<<<<
*
- * property message:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 135, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":134
+ /* "src/lxml/xmlerror.pxi":132
+ *
+ * @property
+ * def level_name(self): # <<<<<<<<<<<<<<
* """The name of the error level. See lxml.etree.ErrorLevels
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ErrorLevels._getName(self.level, u"unknown")
- *
*/
/* function exit code */
/* "src/lxml/xmlerror.pxi":138
*
- * property message:
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef size_t size
- * if self._message is not None:
+ * @property
+ * def message(self): # <<<<<<<<<<<<<<
+ * """The log message string.
+ * """
*/
/* Python wrapper */
PyObject *__pyx_t_15 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "src/lxml/xmlerror.pxi":140
- * def __get__(self):
- * cdef size_t size
- * if self._message is not None: # <<<<<<<<<<<<<<
- * return self._message
- * if self._c_message is NULL:
+ /* "src/lxml/xmlerror.pxi":142
+ * """
+ * cdef size_t size
+ * if self._message is not None: # <<<<<<<<<<<<<<
+ * return self._message
+ * if self._c_message is NULL:
*/
__pyx_t_1 = (__pyx_v_self->_message != ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":141
- * cdef size_t size
- * if self._message is not None:
- * return self._message # <<<<<<<<<<<<<<
- * if self._c_message is NULL:
- * return None
+ /* "src/lxml/xmlerror.pxi":143
+ * cdef size_t size
+ * if self._message is not None:
+ * return self._message # <<<<<<<<<<<<<<
+ * if self._c_message is NULL:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_self->_message);
__pyx_r = __pyx_v_self->_message;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":140
- * def __get__(self):
- * cdef size_t size
- * if self._message is not None: # <<<<<<<<<<<<<<
- * return self._message
- * if self._c_message is NULL:
+ /* "src/lxml/xmlerror.pxi":142
+ * """
+ * cdef size_t size
+ * if self._message is not None: # <<<<<<<<<<<<<<
+ * return self._message
+ * if self._c_message is NULL:
*/
}
- /* "src/lxml/xmlerror.pxi":142
- * if self._message is not None:
- * return self._message
- * if self._c_message is NULL: # <<<<<<<<<<<<<<
- * return None
- * size = cstring_h.strlen(self._c_message)
+ /* "src/lxml/xmlerror.pxi":144
+ * if self._message is not None:
+ * return self._message
+ * if self._c_message is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * size = cstring_h.strlen(self._c_message)
*/
__pyx_t_2 = ((__pyx_v_self->_c_message == NULL) != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":143
- * return self._message
- * if self._c_message is NULL:
- * return None # <<<<<<<<<<<<<<
- * size = cstring_h.strlen(self._c_message)
- * if size > 0 and self._c_message[size-1] == '\n':
+ /* "src/lxml/xmlerror.pxi":145
+ * return self._message
+ * if self._c_message is NULL:
+ * return None # <<<<<<<<<<<<<<
+ * size = cstring_h.strlen(self._c_message)
+ * if size > 0 and self._c_message[size-1] == '\n':
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":142
- * if self._message is not None:
- * return self._message
- * if self._c_message is NULL: # <<<<<<<<<<<<<<
- * return None
- * size = cstring_h.strlen(self._c_message)
+ /* "src/lxml/xmlerror.pxi":144
+ * if self._message is not None:
+ * return self._message
+ * if self._c_message is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * size = cstring_h.strlen(self._c_message)
*/
}
- /* "src/lxml/xmlerror.pxi":144
- * if self._c_message is NULL:
- * return None
- * size = cstring_h.strlen(self._c_message) # <<<<<<<<<<<<<<
- * if size > 0 and self._c_message[size-1] == '\n':
- * size -= 1 # strip EOL
+ /* "src/lxml/xmlerror.pxi":146
+ * if self._c_message is NULL:
+ * return None
+ * size = cstring_h.strlen(self._c_message) # <<<<<<<<<<<<<<
+ * if size > 0 and self._c_message[size-1] == '\n':
+ * size -= 1 # strip EOL
*/
__pyx_v_size = strlen(__pyx_v_self->_c_message);
- /* "src/lxml/xmlerror.pxi":145
- * return None
- * size = cstring_h.strlen(self._c_message)
- * if size > 0 and self._c_message[size-1] == '\n': # <<<<<<<<<<<<<<
- * size -= 1 # strip EOL
- * # cannot use funicode() here because the message may contain
+ /* "src/lxml/xmlerror.pxi":147
+ * return None
+ * size = cstring_h.strlen(self._c_message)
+ * if size > 0 and self._c_message[size-1] == '\n': # <<<<<<<<<<<<<<
+ * size -= 1 # strip EOL
+ * # cannot use funicode() here because the message may contain
*/
__pyx_t_1 = ((__pyx_v_size > 0) != 0);
if (__pyx_t_1) {
__pyx_L6_bool_binop_done:;
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":146
- * size = cstring_h.strlen(self._c_message)
- * if size > 0 and self._c_message[size-1] == '\n':
- * size -= 1 # strip EOL # <<<<<<<<<<<<<<
- * # cannot use funicode() here because the message may contain
- * # byte encoded file paths etc.
+ /* "src/lxml/xmlerror.pxi":148
+ * size = cstring_h.strlen(self._c_message)
+ * if size > 0 and self._c_message[size-1] == '\n':
+ * size -= 1 # strip EOL # <<<<<<<<<<<<<<
+ * # cannot use funicode() here because the message may contain
+ * # byte encoded file paths etc.
*/
__pyx_v_size = (__pyx_v_size - 1);
- /* "src/lxml/xmlerror.pxi":145
- * return None
- * size = cstring_h.strlen(self._c_message)
- * if size > 0 and self._c_message[size-1] == '\n': # <<<<<<<<<<<<<<
- * size -= 1 # strip EOL
- * # cannot use funicode() here because the message may contain
+ /* "src/lxml/xmlerror.pxi":147
+ * return None
+ * size = cstring_h.strlen(self._c_message)
+ * if size > 0 and self._c_message[size-1] == '\n': # <<<<<<<<<<<<<<
+ * size -= 1 # strip EOL
+ * # cannot use funicode() here because the message may contain
*/
}
- /* "src/lxml/xmlerror.pxi":149
- * # cannot use funicode() here because the message may contain
- * # byte encoded file paths etc.
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
+ /* "src/lxml/xmlerror.pxi":151
+ * # cannot use funicode() here because the message may contain
+ * # byte encoded file paths etc.
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
*/
{
__Pyx_PyThreadState_declare
__Pyx_XGOTREF(__pyx_t_5);
/*try:*/ {
- /* "src/lxml/xmlerror.pxi":150
- * # byte encoded file paths etc.
+ /* "src/lxml/xmlerror.pxi":152
+ * # byte encoded file paths etc.
+ * try:
+ * self._message = self._c_message[:size].decode('utf8') # <<<<<<<<<<<<<<
+ * except UnicodeDecodeError:
* try:
- * self._message = self._c_message[:size].decode('utf8') # <<<<<<<<<<<<<<
- * except UnicodeDecodeError:
- * try:
*/
- __pyx_t_6 = __Pyx_decode_c_string(__pyx_v_self->_c_message, 0, __pyx_v_size, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 150, __pyx_L8_error)
+ __pyx_t_6 = __Pyx_decode_c_string(__pyx_v_self->_c_message, 0, __pyx_v_size, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 152, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_6);
- if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_6))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(1, 150, __pyx_L8_error)
+ if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_6))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(1, 152, __pyx_L8_error)
__Pyx_GIVEREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_v_self->_message);
__Pyx_DECREF(__pyx_v_self->_message);
__pyx_v_self->_message = ((PyObject*)__pyx_t_6);
__pyx_t_6 = 0;
- /* "src/lxml/xmlerror.pxi":149
- * # cannot use funicode() here because the message may contain
- * # byte encoded file paths etc.
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
+ /* "src/lxml/xmlerror.pxi":151
+ * # cannot use funicode() here because the message may contain
+ * # byte encoded file paths etc.
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
*/
}
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "src/lxml/xmlerror.pxi":151
+ /* "src/lxml/xmlerror.pxi":153
+ * try:
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError: # <<<<<<<<<<<<<<
* try:
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError: # <<<<<<<<<<<<<<
- * try:
- * self._message = self._c_message[:size].decode(
+ * self._message = self._c_message[:size].decode(
*/
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("lxml.etree._LogEntry.message.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(1, 151, __pyx_L10_except_error)
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(1, 153, __pyx_L10_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_9);
- /* "src/lxml/xmlerror.pxi":152
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode(
- * 'ascii', 'backslashreplace')
+ /* "src/lxml/xmlerror.pxi":154
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode(
+ * 'ascii', 'backslashreplace')
*/
{
__Pyx_PyThreadState_declare
__Pyx_XGOTREF(__pyx_t_12);
/*try:*/ {
- /* "src/lxml/xmlerror.pxi":153
+ /* "src/lxml/xmlerror.pxi":155
+ * except UnicodeDecodeError:
+ * try:
+ * self._message = self._c_message[:size].decode( # <<<<<<<<<<<<<<
+ * 'ascii', 'backslashreplace')
* except UnicodeDecodeError:
- * try:
- * self._message = self._c_message[:size].decode( # <<<<<<<<<<<<<<
- * 'ascii', 'backslashreplace')
- * except UnicodeDecodeError:
*/
- __pyx_t_13 = __Pyx_decode_c_string(__pyx_v_self->_c_message, 0, __pyx_v_size, NULL, ((char const *)"backslashreplace"), PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 153, __pyx_L16_error)
+ __pyx_t_13 = __Pyx_decode_c_string(__pyx_v_self->_c_message, 0, __pyx_v_size, NULL, ((char const *)"backslashreplace"), PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 155, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_13);
- if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_13))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_13)->tp_name), 0))) __PYX_ERR(1, 153, __pyx_L16_error)
+ if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_13))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_13)->tp_name), 0))) __PYX_ERR(1, 155, __pyx_L16_error)
__Pyx_GIVEREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_v_self->_message);
__Pyx_DECREF(__pyx_v_self->_message);
__pyx_v_self->_message = ((PyObject*)__pyx_t_13);
__pyx_t_13 = 0;
- /* "src/lxml/xmlerror.pxi":152
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode(
- * 'ascii', 'backslashreplace')
+ /* "src/lxml/xmlerror.pxi":154
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode(
+ * 'ascii', 'backslashreplace')
*/
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_L16_error:;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
- /* "src/lxml/xmlerror.pxi":155
- * self._message = self._c_message[:size].decode(
- * 'ascii', 'backslashreplace')
- * except UnicodeDecodeError: # <<<<<<<<<<<<<<
- * self._message = u'<undecodable error message>'
- * if self._c_message:
+ /* "src/lxml/xmlerror.pxi":157
+ * self._message = self._c_message[:size].decode(
+ * 'ascii', 'backslashreplace')
+ * except UnicodeDecodeError: # <<<<<<<<<<<<<<
+ * self._message = u'<undecodable error message>'
+ * if self._c_message:
*/
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("lxml.etree._LogEntry.message.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0) __PYX_ERR(1, 155, __pyx_L18_except_error)
+ if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0) __PYX_ERR(1, 157, __pyx_L18_except_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_GOTREF(__pyx_t_14);
__Pyx_GOTREF(__pyx_t_15);
- /* "src/lxml/xmlerror.pxi":156
- * 'ascii', 'backslashreplace')
- * except UnicodeDecodeError:
- * self._message = u'<undecodable error message>' # <<<<<<<<<<<<<<
- * if self._c_message:
- * # clean up early
+ /* "src/lxml/xmlerror.pxi":158
+ * 'ascii', 'backslashreplace')
+ * except UnicodeDecodeError:
+ * self._message = u'<undecodable error message>' # <<<<<<<<<<<<<<
+ * if self._c_message:
+ * # clean up early
*/
__Pyx_INCREF(__pyx_kp_u_undecodable_error_message);
__Pyx_GIVEREF(__pyx_kp_u_undecodable_error_message);
goto __pyx_L18_except_error;
__pyx_L18_except_error:;
- /* "src/lxml/xmlerror.pxi":152
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode(
- * 'ascii', 'backslashreplace')
+ /* "src/lxml/xmlerror.pxi":154
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode(
+ * 'ascii', 'backslashreplace')
*/
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
goto __pyx_L10_except_error;
__pyx_L10_except_error:;
- /* "src/lxml/xmlerror.pxi":149
- * # cannot use funicode() here because the message may contain
- * # byte encoded file paths etc.
- * try: # <<<<<<<<<<<<<<
- * self._message = self._c_message[:size].decode('utf8')
- * except UnicodeDecodeError:
+ /* "src/lxml/xmlerror.pxi":151
+ * # cannot use funicode() here because the message may contain
+ * # byte encoded file paths etc.
+ * try: # <<<<<<<<<<<<<<
+ * self._message = self._c_message[:size].decode('utf8')
+ * except UnicodeDecodeError:
*/
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__pyx_L13_try_end:;
}
- /* "src/lxml/xmlerror.pxi":157
- * except UnicodeDecodeError:
- * self._message = u'<undecodable error message>'
- * if self._c_message: # <<<<<<<<<<<<<<
- * # clean up early
- * tree.xmlFree(self._c_message)
+ /* "src/lxml/xmlerror.pxi":159
+ * except UnicodeDecodeError:
+ * self._message = u'<undecodable error message>'
+ * if self._c_message: # <<<<<<<<<<<<<<
+ * # clean up early
+ * tree.xmlFree(self._c_message)
*/
__pyx_t_2 = (__pyx_v_self->_c_message != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":159
- * if self._c_message:
- * # clean up early
- * tree.xmlFree(self._c_message) # <<<<<<<<<<<<<<
- * self._c_message = NULL
- * return self._message
+ /* "src/lxml/xmlerror.pxi":161
+ * if self._c_message:
+ * # clean up early
+ * tree.xmlFree(self._c_message) # <<<<<<<<<<<<<<
+ * self._c_message = NULL
+ * return self._message
*/
xmlFree(__pyx_v_self->_c_message);
- /* "src/lxml/xmlerror.pxi":160
- * # clean up early
- * tree.xmlFree(self._c_message)
- * self._c_message = NULL # <<<<<<<<<<<<<<
- * return self._message
+ /* "src/lxml/xmlerror.pxi":162
+ * # clean up early
+ * tree.xmlFree(self._c_message)
+ * self._c_message = NULL # <<<<<<<<<<<<<<
+ * return self._message
*
*/
__pyx_v_self->_c_message = NULL;
- /* "src/lxml/xmlerror.pxi":157
- * except UnicodeDecodeError:
- * self._message = u'<undecodable error message>'
- * if self._c_message: # <<<<<<<<<<<<<<
- * # clean up early
- * tree.xmlFree(self._c_message)
+ /* "src/lxml/xmlerror.pxi":159
+ * except UnicodeDecodeError:
+ * self._message = u'<undecodable error message>'
+ * if self._c_message: # <<<<<<<<<<<<<<
+ * # clean up early
+ * tree.xmlFree(self._c_message)
*/
}
- /* "src/lxml/xmlerror.pxi":161
- * tree.xmlFree(self._c_message)
- * self._c_message = NULL
- * return self._message # <<<<<<<<<<<<<<
+ /* "src/lxml/xmlerror.pxi":163
+ * tree.xmlFree(self._c_message)
+ * self._c_message = NULL
+ * return self._message # <<<<<<<<<<<<<<
*
- * property filename:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_self->_message);
/* "src/lxml/xmlerror.pxi":138
*
- * property message:
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef size_t size
- * if self._message is not None:
+ * @property
+ * def message(self): # <<<<<<<<<<<<<<
+ * """The log message string.
+ * """
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":164
+/* "src/lxml/xmlerror.pxi":166
*
- * property filename:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._filename is None:
- * if self._c_filename is not NULL:
+ * @property
+ * def filename(self): # <<<<<<<<<<<<<<
+ * """The file path where the report originated, if any.
+ * """
*/
/* Python wrapper */
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "src/lxml/xmlerror.pxi":165
- * property filename:
- * def __get__(self):
- * if self._filename is None: # <<<<<<<<<<<<<<
- * if self._c_filename is not NULL:
- * self._filename = _decodeFilename(self._c_filename)
+ /* "src/lxml/xmlerror.pxi":169
+ * """The file path where the report originated, if any.
+ * """
+ * if self._filename is None: # <<<<<<<<<<<<<<
+ * if self._c_filename is not NULL:
+ * self._filename = _decodeFilename(self._c_filename)
*/
__pyx_t_1 = (__pyx_v_self->_filename == ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":166
- * def __get__(self):
- * if self._filename is None:
- * if self._c_filename is not NULL: # <<<<<<<<<<<<<<
- * self._filename = _decodeFilename(self._c_filename)
- * # clean up early
+ /* "src/lxml/xmlerror.pxi":170
+ * """
+ * if self._filename is None:
+ * if self._c_filename is not NULL: # <<<<<<<<<<<<<<
+ * self._filename = _decodeFilename(self._c_filename)
+ * # clean up early
*/
__pyx_t_2 = ((__pyx_v_self->_c_filename != NULL) != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":167
- * if self._filename is None:
- * if self._c_filename is not NULL:
- * self._filename = _decodeFilename(self._c_filename) # <<<<<<<<<<<<<<
- * # clean up early
- * tree.xmlFree(self._c_filename)
+ /* "src/lxml/xmlerror.pxi":171
+ * if self._filename is None:
+ * if self._c_filename is not NULL:
+ * self._filename = _decodeFilename(self._c_filename) # <<<<<<<<<<<<<<
+ * # clean up early
+ * tree.xmlFree(self._c_filename)
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_c_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 167, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_c_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 167, __pyx_L1_error)
+ if (!(likely(__Pyx_PyBaseString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", (PY_MAJOR_VERSION < 3 ? "basestring" : "str"), Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 171, __pyx_L1_error)
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_filename);
__Pyx_DECREF(__pyx_v_self->_filename);
__pyx_v_self->_filename = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":169
- * self._filename = _decodeFilename(self._c_filename)
- * # clean up early
- * tree.xmlFree(self._c_filename) # <<<<<<<<<<<<<<
- * self._c_filename = NULL
- * return self._filename
+ /* "src/lxml/xmlerror.pxi":173
+ * self._filename = _decodeFilename(self._c_filename)
+ * # clean up early
+ * tree.xmlFree(self._c_filename) # <<<<<<<<<<<<<<
+ * self._c_filename = NULL
+ * return self._filename
*/
xmlFree(__pyx_v_self->_c_filename);
- /* "src/lxml/xmlerror.pxi":170
- * # clean up early
- * tree.xmlFree(self._c_filename)
- * self._c_filename = NULL # <<<<<<<<<<<<<<
- * return self._filename
+ /* "src/lxml/xmlerror.pxi":174
+ * # clean up early
+ * tree.xmlFree(self._c_filename)
+ * self._c_filename = NULL # <<<<<<<<<<<<<<
+ * return self._filename
*
*/
__pyx_v_self->_c_filename = NULL;
- /* "src/lxml/xmlerror.pxi":166
- * def __get__(self):
- * if self._filename is None:
- * if self._c_filename is not NULL: # <<<<<<<<<<<<<<
- * self._filename = _decodeFilename(self._c_filename)
- * # clean up early
+ /* "src/lxml/xmlerror.pxi":170
+ * """
+ * if self._filename is None:
+ * if self._c_filename is not NULL: # <<<<<<<<<<<<<<
+ * self._filename = _decodeFilename(self._c_filename)
+ * # clean up early
*/
}
- /* "src/lxml/xmlerror.pxi":165
- * property filename:
- * def __get__(self):
- * if self._filename is None: # <<<<<<<<<<<<<<
- * if self._c_filename is not NULL:
- * self._filename = _decodeFilename(self._c_filename)
+ /* "src/lxml/xmlerror.pxi":169
+ * """The file path where the report originated, if any.
+ * """
+ * if self._filename is None: # <<<<<<<<<<<<<<
+ * if self._c_filename is not NULL:
+ * self._filename = _decodeFilename(self._c_filename)
*/
}
- /* "src/lxml/xmlerror.pxi":171
- * tree.xmlFree(self._c_filename)
- * self._c_filename = NULL
- * return self._filename # <<<<<<<<<<<<<<
+ /* "src/lxml/xmlerror.pxi":175
+ * tree.xmlFree(self._c_filename)
+ * self._c_filename = NULL
+ * return self._filename # <<<<<<<<<<<<<<
*
- * property path:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_self->_filename);
__pyx_r = __pyx_v_self->_filename;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":164
+ /* "src/lxml/xmlerror.pxi":166
*
- * property filename:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._filename is None:
- * if self._c_filename is not NULL:
+ * @property
+ * def filename(self): # <<<<<<<<<<<<<<
+ * """The file path where the report originated, if any.
+ * """
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":176
+/* "src/lxml/xmlerror.pxi":178
+ *
+ * @property
+ * def path(self): # <<<<<<<<<<<<<<
* """The XPath for the node where the error was detected.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return funicode(self._c_path) if self._c_path is not NULL else None
- *
*/
/* Python wrapper */
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "src/lxml/xmlerror.pxi":177
+ /* "src/lxml/xmlerror.pxi":181
+ * """The XPath for the node where the error was detected.
* """
- * def __get__(self):
- * return funicode(self._c_path) if self._c_path is not NULL else None # <<<<<<<<<<<<<<
+ * return funicode(self._c_path) if self._c_path is not NULL else None # <<<<<<<<<<<<<<
*
*
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_path != NULL) != 0)) {
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 177, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":176
+ /* "src/lxml/xmlerror.pxi":178
+ *
+ * @property
+ * def path(self): # <<<<<<<<<<<<<<
* """The XPath for the node where the error was detected.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return funicode(self._c_path) if self._c_path is not NULL else None
- *
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":183
+/* "src/lxml/xmlerror.pxi":187
* cdef _LogEntry _first_error
* cdef readonly object last_error
* def __init__(self, first_error, last_error): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_error)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 183, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 187, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 183, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 187, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 183, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 187, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._BaseErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "src/lxml/xmlerror.pxi":184
+ /* "src/lxml/xmlerror.pxi":188
* cdef readonly object last_error
* def __init__(self, first_error, last_error):
* self._first_error = first_error # <<<<<<<<<<<<<<
* self.last_error = last_error
*
*/
- if (!(likely(((__pyx_v_first_error) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_first_error, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 184, __pyx_L1_error)
+ if (!(likely(((__pyx_v_first_error) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_first_error, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 188, __pyx_L1_error)
__pyx_t_1 = __pyx_v_first_error;
__Pyx_INCREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_v_self->_first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":185
+ /* "src/lxml/xmlerror.pxi":189
* def __init__(self, first_error, last_error):
* self._first_error = first_error
* self.last_error = last_error # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->last_error);
__pyx_v_self->last_error = __pyx_v_last_error;
- /* "src/lxml/xmlerror.pxi":183
+ /* "src/lxml/xmlerror.pxi":187
* cdef _LogEntry _first_error
* cdef readonly object last_error
* def __init__(self, first_error, last_error): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":187
+/* "src/lxml/xmlerror.pxi":191
* self.last_error = last_error
*
* cpdef copy(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_13_BaseErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":188
+ /* "src/lxml/xmlerror.pxi":192
*
* cpdef copy(self):
* return _BaseErrorLog(self._first_error, self.last_error) # <<<<<<<<<<<<<<
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 188, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)__pyx_v_self->_first_error));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self->_first_error));
__Pyx_INCREF(__pyx_v_self->last_error);
__Pyx_GIVEREF(__pyx_v_self->last_error);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_self->last_error);
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 188, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 192, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":187
+ /* "src/lxml/xmlerror.pxi":191
* self.last_error = last_error
*
* cpdef copy(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("copy", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":190
+/* "src/lxml/xmlerror.pxi":194
* return _BaseErrorLog(self._first_error, self.last_error)
*
* def __repr__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "src/lxml/xmlerror.pxi":191
+ /* "src/lxml/xmlerror.pxi":195
*
* def __repr__(self):
* return u'' # <<<<<<<<<<<<<<
__pyx_r = __pyx_kp_u__11;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":190
+ /* "src/lxml/xmlerror.pxi":194
* return _BaseErrorLog(self._first_error, self.last_error)
*
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":193
+/* "src/lxml/xmlerror.pxi":197
* return u''
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 193, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_entry)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_entry));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 193, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":194
+ /* "src/lxml/xmlerror.pxi":198
*
* cpdef receive(self, _LogEntry entry):
* pass # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":193
+/* "src/lxml/xmlerror.pxi":197
* return u''
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 193, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 197, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_13_BaseErrorLog_6receive(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self), ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_v_entry));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("receive", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 193, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":197
+/* "src/lxml/xmlerror.pxi":201
*
* @cython.final
* cdef void _receive(self, xmlerror.xmlError* error): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_receive", 0);
- /* "src/lxml/xmlerror.pxi":201
+ /* "src/lxml/xmlerror.pxi":205
* cdef _LogEntry entry
* cdef _BaseErrorLog global_log
* entry = _LogEntry.__new__(_LogEntry) # <<<<<<<<<<<<<<
* entry._setError(error)
* is_error = error.level == xmlerror.XML_ERR_ERROR or \
*/
- __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)__pyx_ptype_4lxml_5etree__LogEntry), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 201, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)__pyx_ptype_4lxml_5etree__LogEntry), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 205, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":202
+ /* "src/lxml/xmlerror.pxi":206
* cdef _BaseErrorLog global_log
* entry = _LogEntry.__new__(_LogEntry)
* entry._setError(error) # <<<<<<<<<<<<<<
* is_error = error.level == xmlerror.XML_ERR_ERROR or \
* error.level == xmlerror.XML_ERR_FATAL
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_LogEntry__setError(__pyx_v_entry, __pyx_v_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 202, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_LogEntry__setError(__pyx_v_entry, __pyx_v_error); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":203
+ /* "src/lxml/xmlerror.pxi":207
* entry = _LogEntry.__new__(_LogEntry)
* entry._setError(error)
* is_error = error.level == xmlerror.XML_ERR_ERROR or \ # <<<<<<<<<<<<<<
case XML_ERR_ERROR:
case XML_ERR_FATAL:
- /* "src/lxml/xmlerror.pxi":204
+ /* "src/lxml/xmlerror.pxi":208
* entry._setError(error)
* is_error = error.level == xmlerror.XML_ERR_ERROR or \
* error.level == xmlerror.XML_ERR_FATAL # <<<<<<<<<<<<<<
*/
__pyx_t_2 = 1;
- /* "src/lxml/xmlerror.pxi":203
+ /* "src/lxml/xmlerror.pxi":207
* entry = _LogEntry.__new__(_LogEntry)
* entry._setError(error)
* is_error = error.level == xmlerror.XML_ERR_ERROR or \ # <<<<<<<<<<<<<<
}
__pyx_v_is_error = __pyx_t_2;
- /* "src/lxml/xmlerror.pxi":205
+ /* "src/lxml/xmlerror.pxi":209
* is_error = error.level == xmlerror.XML_ERR_ERROR or \
* error.level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG) # <<<<<<<<<<<<<<
* if global_log is not self:
* global_log.receive(entry)
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 205, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_global_log = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":206
+ /* "src/lxml/xmlerror.pxi":210
* error.level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":207
+ /* "src/lxml/xmlerror.pxi":211
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self:
* global_log.receive(entry) # <<<<<<<<<<<<<<
* if is_error:
* global_log.last_error = entry
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_global_log->__pyx_vtab)->receive(__pyx_v_global_log, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 207, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_global_log->__pyx_vtab)->receive(__pyx_v_global_log, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":208
+ /* "src/lxml/xmlerror.pxi":212
* if global_log is not self:
* global_log.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_error != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":209
+ /* "src/lxml/xmlerror.pxi":213
* global_log.receive(entry)
* if is_error:
* global_log.last_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_global_log->last_error);
__pyx_v_global_log->last_error = ((PyObject *)__pyx_v_entry);
- /* "src/lxml/xmlerror.pxi":208
+ /* "src/lxml/xmlerror.pxi":212
* if global_log is not self:
* global_log.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":206
+ /* "src/lxml/xmlerror.pxi":210
* error.level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":210
+ /* "src/lxml/xmlerror.pxi":214
* if is_error:
* global_log.last_error = entry
* self.receive(entry) # <<<<<<<<<<<<<<
* if is_error:
* self.last_error = entry
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_vtab)->receive(__pyx_v_self, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 210, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_vtab)->receive(__pyx_v_self, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":211
+ /* "src/lxml/xmlerror.pxi":215
* global_log.last_error = entry
* self.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_error != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":212
+ /* "src/lxml/xmlerror.pxi":216
* self.receive(entry)
* if is_error:
* self.last_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->last_error);
__pyx_v_self->last_error = ((PyObject *)__pyx_v_entry);
- /* "src/lxml/xmlerror.pxi":211
+ /* "src/lxml/xmlerror.pxi":215
* global_log.last_error = entry
* self.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":197
+ /* "src/lxml/xmlerror.pxi":201
*
* @cython.final
* cdef void _receive(self, xmlerror.xmlError* error): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/xmlerror.pxi":215
+/* "src/lxml/xmlerror.pxi":219
*
* @cython.final
* cdef void _receiveGeneric(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("_receiveGeneric", 0);
- /* "src/lxml/xmlerror.pxi":220
+ /* "src/lxml/xmlerror.pxi":224
* cdef _LogEntry entry
* cdef _BaseErrorLog global_log
* entry = _LogEntry.__new__(_LogEntry) # <<<<<<<<<<<<<<
* entry._setGeneric(domain, type, level, line, message, filename)
* is_error = level == xmlerror.XML_ERR_ERROR or \
*/
- __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)__pyx_ptype_4lxml_5etree__LogEntry), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 220, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__LogEntry(((PyTypeObject *)__pyx_ptype_4lxml_5etree__LogEntry), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 224, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":221
+ /* "src/lxml/xmlerror.pxi":225
* cdef _BaseErrorLog global_log
* entry = _LogEntry.__new__(_LogEntry)
* entry._setGeneric(domain, type, level, line, message, filename) # <<<<<<<<<<<<<<
* is_error = level == xmlerror.XML_ERR_ERROR or \
* level == xmlerror.XML_ERR_FATAL
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_LogEntry__setGeneric(__pyx_v_entry, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 221, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_LogEntry__setGeneric(__pyx_v_entry, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":222
+ /* "src/lxml/xmlerror.pxi":226
* entry = _LogEntry.__new__(_LogEntry)
* entry._setGeneric(domain, type, level, line, message, filename)
* is_error = level == xmlerror.XML_ERR_ERROR or \ # <<<<<<<<<<<<<<
case XML_ERR_ERROR:
case XML_ERR_FATAL:
- /* "src/lxml/xmlerror.pxi":223
+ /* "src/lxml/xmlerror.pxi":227
* entry._setGeneric(domain, type, level, line, message, filename)
* is_error = level == xmlerror.XML_ERR_ERROR or \
* level == xmlerror.XML_ERR_FATAL # <<<<<<<<<<<<<<
*/
__pyx_t_2 = 1;
- /* "src/lxml/xmlerror.pxi":222
+ /* "src/lxml/xmlerror.pxi":226
* entry = _LogEntry.__new__(_LogEntry)
* entry._setGeneric(domain, type, level, line, message, filename)
* is_error = level == xmlerror.XML_ERR_ERROR or \ # <<<<<<<<<<<<<<
}
__pyx_v_is_error = __pyx_t_2;
- /* "src/lxml/xmlerror.pxi":224
+ /* "src/lxml/xmlerror.pxi":228
* is_error = level == xmlerror.XML_ERR_ERROR or \
* level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG) # <<<<<<<<<<<<<<
* if global_log is not self:
* global_log.receive(entry)
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 224, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_global_log = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":225
+ /* "src/lxml/xmlerror.pxi":229
* level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":226
+ /* "src/lxml/xmlerror.pxi":230
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self:
* global_log.receive(entry) # <<<<<<<<<<<<<<
* if is_error:
* global_log.last_error = entry
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_global_log->__pyx_vtab)->receive(__pyx_v_global_log, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_global_log->__pyx_vtab)->receive(__pyx_v_global_log, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":227
+ /* "src/lxml/xmlerror.pxi":231
* if global_log is not self:
* global_log.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_error != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":228
+ /* "src/lxml/xmlerror.pxi":232
* global_log.receive(entry)
* if is_error:
* global_log.last_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_global_log->last_error);
__pyx_v_global_log->last_error = ((PyObject *)__pyx_v_entry);
- /* "src/lxml/xmlerror.pxi":227
+ /* "src/lxml/xmlerror.pxi":231
* if global_log is not self:
* global_log.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":225
+ /* "src/lxml/xmlerror.pxi":229
* level == xmlerror.XML_ERR_FATAL
* global_log = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* if global_log is not self: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":229
+ /* "src/lxml/xmlerror.pxi":233
* if is_error:
* global_log.last_error = entry
* self.receive(entry) # <<<<<<<<<<<<<<
* if is_error:
* self.last_error = entry
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_vtab)->receive(__pyx_v_self, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 229, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_vtab)->receive(__pyx_v_self, __pyx_v_entry, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":230
+ /* "src/lxml/xmlerror.pxi":234
* global_log.last_error = entry
* self.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_is_error != 0);
if (__pyx_t_3) {
- /* "src/lxml/xmlerror.pxi":231
+ /* "src/lxml/xmlerror.pxi":235
* self.receive(entry)
* if is_error:
* self.last_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->last_error);
__pyx_v_self->last_error = ((PyObject *)__pyx_v_entry);
- /* "src/lxml/xmlerror.pxi":230
+ /* "src/lxml/xmlerror.pxi":234
* global_log.last_error = entry
* self.receive(entry)
* if is_error: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":215
+ /* "src/lxml/xmlerror.pxi":219
*
* @cython.final
* cdef void _receiveGeneric(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/xmlerror.pxi":234
+/* "src/lxml/xmlerror.pxi":238
*
* @cython.final
* cdef _buildParseException(self, exctype, default_message): # <<<<<<<<<<<<<<
PyObject *__pyx_t_12 = NULL;
__Pyx_RefNannySetupContext("_buildParseException", 0);
- /* "src/lxml/xmlerror.pxi":235
+ /* "src/lxml/xmlerror.pxi":239
* @cython.final
* cdef _buildParseException(self, exctype, default_message):
* code = xmlerror.XML_ERR_INTERNAL_ERROR # <<<<<<<<<<<<<<
*/
__pyx_v_code = XML_ERR_INTERNAL_ERROR;
- /* "src/lxml/xmlerror.pxi":236
+ /* "src/lxml/xmlerror.pxi":240
* cdef _buildParseException(self, exctype, default_message):
* code = xmlerror.XML_ERR_INTERNAL_ERROR
* if self._first_error is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":237
+ /* "src/lxml/xmlerror.pxi":241
* code = xmlerror.XML_ERR_INTERNAL_ERROR
* if self._first_error is None:
* return exctype(default_message, code, 0, 0) # <<<<<<<<<<<<<<
* if message:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 237, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_exctype);
__pyx_t_5 = __pyx_v_exctype; __pyx_t_6 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_default_message, __pyx_t_4, __pyx_int_0, __pyx_int_0};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 237, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 241, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_v_default_message, __pyx_t_4, __pyx_int_0, __pyx_int_0};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 237, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 241, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else
#endif
{
- __pyx_t_8 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 237, __pyx_L1_error)
+ __pyx_t_8 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_7, __pyx_int_0);
__pyx_t_4 = 0;
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 237, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":236
+ /* "src/lxml/xmlerror.pxi":240
* cdef _buildParseException(self, exctype, default_message):
* code = xmlerror.XML_ERR_INTERNAL_ERROR
* if self._first_error is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":238
+ /* "src/lxml/xmlerror.pxi":242
* if self._first_error is None:
* return exctype(default_message, code, 0, 0)
* message = self._first_error.message # <<<<<<<<<<<<<<
* if message:
* code = self._first_error.type
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 238, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_message = __pyx_t_3;
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":239
+ /* "src/lxml/xmlerror.pxi":243
* return exctype(default_message, code, 0, 0)
* message = self._first_error.message
* if message: # <<<<<<<<<<<<<<
* code = self._first_error.type
* else:
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_message); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 239, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_message); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 243, __pyx_L1_error)
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":240
+ /* "src/lxml/xmlerror.pxi":244
* message = self._first_error.message
* if message:
* code = self._first_error.type # <<<<<<<<<<<<<<
__pyx_t_7 = __pyx_v_self->_first_error->type;
__pyx_v_code = __pyx_t_7;
- /* "src/lxml/xmlerror.pxi":239
+ /* "src/lxml/xmlerror.pxi":243
* return exctype(default_message, code, 0, 0)
* message = self._first_error.message
* if message: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "src/lxml/xmlerror.pxi":242
+ /* "src/lxml/xmlerror.pxi":246
* code = self._first_error.type
* else:
* message = default_message # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "src/lxml/xmlerror.pxi":243
+ /* "src/lxml/xmlerror.pxi":247
* else:
* message = default_message
* line = self._first_error.line # <<<<<<<<<<<<<<
__pyx_t_7 = __pyx_v_self->_first_error->line;
__pyx_v_line = __pyx_t_7;
- /* "src/lxml/xmlerror.pxi":244
+ /* "src/lxml/xmlerror.pxi":248
* message = default_message
* line = self._first_error.line
* column = self._first_error.column # <<<<<<<<<<<<<<
__pyx_t_7 = __pyx_v_self->_first_error->column;
__pyx_v_column = __pyx_t_7;
- /* "src/lxml/xmlerror.pxi":245
+ /* "src/lxml/xmlerror.pxi":249
* line = self._first_error.line
* column = self._first_error.column
* filename = self._first_error.filename # <<<<<<<<<<<<<<
* if line > 0:
* if column > 0:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 245, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_filename); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_filename = __pyx_t_3;
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":246
+ /* "src/lxml/xmlerror.pxi":250
* column = self._first_error.column
* filename = self._first_error.filename
* if line > 0: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_line > 0) != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":247
+ /* "src/lxml/xmlerror.pxi":251
* filename = self._first_error.filename
* if line > 0:
* if column > 0: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_column > 0) != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":248
+ /* "src/lxml/xmlerror.pxi":252
* if line > 0:
* if column > 0:
* message = f"{message}, line {line}, column {column}" # <<<<<<<<<<<<<<
* else:
* message = f"{message}, line {line}"
*/
- __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 248, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = 0;
__pyx_t_10 = 127;
- __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 248, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_10;
__pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__pyx_t_9 += 7;
__Pyx_GIVEREF(__pyx_kp_u_line);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u_line);
- __pyx_t_5 = __Pyx_PyUnicode_From_int(__pyx_v_line, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 248, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_From_int(__pyx_v_line, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_9 += 9;
__Pyx_GIVEREF(__pyx_kp_u_column);
PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_kp_u_column);
- __pyx_t_5 = __Pyx_PyUnicode_From_int(__pyx_v_column, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 248, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_From_int(__pyx_v_column, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_5);
__pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 248, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_message, __pyx_t_5);
__pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":247
+ /* "src/lxml/xmlerror.pxi":251
* filename = self._first_error.filename
* if line > 0:
* if column > 0: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/xmlerror.pxi":250
+ /* "src/lxml/xmlerror.pxi":254
* message = f"{message}, line {line}, column {column}"
* else:
* message = f"{message}, line {line}" # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 250, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = 0;
__pyx_t_10 = 127;
- __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 250, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_10;
__pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__pyx_t_9 += 7;
__Pyx_GIVEREF(__pyx_kp_u_line);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_line);
- __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_line, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 250, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_line, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 250, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_message, __pyx_t_3);
}
__pyx_L6:;
- /* "src/lxml/xmlerror.pxi":246
+ /* "src/lxml/xmlerror.pxi":250
* column = self._first_error.column
* filename = self._first_error.filename
* if line > 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":251
+ /* "src/lxml/xmlerror.pxi":255
* else:
* message = f"{message}, line {line}"
* return exctype(message, code, line, column, filename) # <<<<<<<<<<<<<<
* @cython.final
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_code); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_column); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_exctype);
__pyx_t_6 = __pyx_v_exctype; __pyx_t_11 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_v_message, __pyx_t_5, __pyx_t_8, __pyx_t_4, __pyx_v_filename};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_v_message, __pyx_t_5, __pyx_t_8, __pyx_t_4, __pyx_v_filename};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 5+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else
#endif
{
- __pyx_t_12 = PyTuple_New(5+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_12 = PyTuple_New(5+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (__pyx_t_11) {
__Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = NULL;
__pyx_t_5 = 0;
__pyx_t_8 = 0;
__pyx_t_4 = 0;
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":234
+ /* "src/lxml/xmlerror.pxi":238
*
* @cython.final
* cdef _buildParseException(self, exctype, default_message): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":254
+/* "src/lxml/xmlerror.pxi":258
*
* @cython.final
* cdef _buildExceptionMessage(self, default_message): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("_buildExceptionMessage", 0);
- /* "src/lxml/xmlerror.pxi":255
+ /* "src/lxml/xmlerror.pxi":259
* @cython.final
* cdef _buildExceptionMessage(self, default_message):
* if self._first_error is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":256
+ /* "src/lxml/xmlerror.pxi":260
* cdef _buildExceptionMessage(self, default_message):
* if self._first_error is None:
* return default_message # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_default_message;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":255
+ /* "src/lxml/xmlerror.pxi":259
* @cython.final
* cdef _buildExceptionMessage(self, default_message):
* if self._first_error is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":257
+ /* "src/lxml/xmlerror.pxi":261
* if self._first_error is None:
* return default_message
* if self._first_error.message: # <<<<<<<<<<<<<<
* message = self._first_error.message
* elif default_message is None:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 257, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 257, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 261, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":258
+ /* "src/lxml/xmlerror.pxi":262
* return default_message
* if self._first_error.message:
* message = self._first_error.message # <<<<<<<<<<<<<<
* elif default_message is None:
* return None
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 258, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_first_error), __pyx_n_s_message); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_message = __pyx_t_3;
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":257
+ /* "src/lxml/xmlerror.pxi":261
* if self._first_error is None:
* return default_message
* if self._first_error.message: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "src/lxml/xmlerror.pxi":259
+ /* "src/lxml/xmlerror.pxi":263
* if self._first_error.message:
* message = self._first_error.message
* elif default_message is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":260
+ /* "src/lxml/xmlerror.pxi":264
* message = self._first_error.message
* elif default_message is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":259
+ /* "src/lxml/xmlerror.pxi":263
* if self._first_error.message:
* message = self._first_error.message
* elif default_message is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":262
+ /* "src/lxml/xmlerror.pxi":266
* return None
* else:
* message = default_message # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "src/lxml/xmlerror.pxi":263
+ /* "src/lxml/xmlerror.pxi":267
* else:
* message = default_message
* if self._first_error.line > 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_self->_first_error->line > 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":264
+ /* "src/lxml/xmlerror.pxi":268
* message = default_message
* if self._first_error.line > 0:
* if self._first_error.column > 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_self->_first_error->column > 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":265
+ /* "src/lxml/xmlerror.pxi":269
* if self._first_error.line > 0:
* if self._first_error.column > 0:
* message = f"{message}, line {self._first_error.line}, column {self._first_error.column}" # <<<<<<<<<<<<<<
* else:
* message = f"{message}, line {self._first_error.line}"
*/
- __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 265, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = 0;
__pyx_t_5 = 127;
- __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 265, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_5;
__pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
__pyx_t_4 += 7;
__Pyx_GIVEREF(__pyx_kp_u_line);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_u_line);
- __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->line, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 265, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->line, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_4 += 9;
__Pyx_GIVEREF(__pyx_kp_u_column);
PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_kp_u_column);
- __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->column, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 265, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->column, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_6);
__pyx_t_6 = 0;
- __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 265, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 269, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_message, __pyx_t_6);
__pyx_t_6 = 0;
- /* "src/lxml/xmlerror.pxi":264
+ /* "src/lxml/xmlerror.pxi":268
* message = default_message
* if self._first_error.line > 0:
* if self._first_error.column > 0: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/xmlerror.pxi":267
+ /* "src/lxml/xmlerror.pxi":271
* message = f"{message}, line {self._first_error.line}, column {self._first_error.column}"
* else:
* message = f"{message}, line {self._first_error.line}" # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 267, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = 0;
__pyx_t_5 = 127;
- __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 267, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_message, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_5;
__pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__pyx_t_4 += 7;
__Pyx_GIVEREF(__pyx_kp_u_line);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_u_line);
- __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->line, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 267, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_self->_first_error->line, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 267, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF_SET(__pyx_v_message, __pyx_t_3);
}
__pyx_L6:;
- /* "src/lxml/xmlerror.pxi":263
+ /* "src/lxml/xmlerror.pxi":267
* else:
* message = default_message
* if self._first_error.line > 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":268
+ /* "src/lxml/xmlerror.pxi":272
* else:
* message = f"{message}, line {self._first_error.line}"
* return message # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_message;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":254
+ /* "src/lxml/xmlerror.pxi":258
*
* @cython.final
* cdef _buildExceptionMessage(self, default_message): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":182
+/* "src/lxml/xmlerror.pxi":186
* cdef class _BaseErrorLog:
* cdef _LogEntry _first_error
* cdef readonly object last_error # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":274
+/* "src/lxml/xmlerror.pxi":278
* cdef list _entries
* cdef int _offset
* def __init__(self, entries, first_error, last_error): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first_error)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(1, 274, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(1, 278, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_last_error)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(1, 274, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(1, 278, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 274, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 278, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 274, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 278, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ListErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_first_error);
__Pyx_INCREF(__pyx_v_last_error);
- /* "src/lxml/xmlerror.pxi":275
+ /* "src/lxml/xmlerror.pxi":279
* cdef int _offset
* def __init__(self, entries, first_error, last_error):
* if entries: # <<<<<<<<<<<<<<
* if first_error is None:
* first_error = entries[0]
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_entries); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 275, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_entries); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 279, __pyx_L1_error)
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":276
+ /* "src/lxml/xmlerror.pxi":280
* def __init__(self, entries, first_error, last_error):
* if entries:
* if first_error is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":277
+ /* "src/lxml/xmlerror.pxi":281
* if entries:
* if first_error is None:
* first_error = entries[0] # <<<<<<<<<<<<<<
* if last_error is None:
* last_error = entries[-1]
*/
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 277, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_first_error, __pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":276
+ /* "src/lxml/xmlerror.pxi":280
* def __init__(self, entries, first_error, last_error):
* if entries:
* if first_error is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":278
+ /* "src/lxml/xmlerror.pxi":282
* if first_error is None:
* first_error = entries[0]
* if last_error is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":279
+ /* "src/lxml/xmlerror.pxi":283
* first_error = entries[0]
* if last_error is None:
* last_error = entries[-1] # <<<<<<<<<<<<<<
* _BaseErrorLog.__init__(self, first_error, last_error)
* self._entries = entries
*/
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 279, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_last_error, __pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":278
+ /* "src/lxml/xmlerror.pxi":282
* if first_error is None:
* first_error = entries[0]
* if last_error is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":275
+ /* "src/lxml/xmlerror.pxi":279
* cdef int _offset
* def __init__(self, entries, first_error, last_error):
* if entries: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":280
+ /* "src/lxml/xmlerror.pxi":284
* if last_error is None:
* last_error = entries[-1]
* _BaseErrorLog.__init__(self, first_error, last_error) # <<<<<<<<<<<<<<
* self._entries = entries
*
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 280, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_first_error, __pyx_v_last_error};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 280, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 284, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_first_error, __pyx_v_last_error};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 280, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 284, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 280, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_last_error);
__Pyx_GIVEREF(__pyx_v_last_error);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_last_error);
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 280, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":281
+ /* "src/lxml/xmlerror.pxi":285
* last_error = entries[-1]
* _BaseErrorLog.__init__(self, first_error, last_error)
* self._entries = entries # <<<<<<<<<<<<<<
*
* cpdef copy(self):
*/
- if (!(likely(PyList_CheckExact(__pyx_v_entries))||((__pyx_v_entries) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_entries)->tp_name), 0))) __PYX_ERR(1, 281, __pyx_L1_error)
+ if (!(likely(PyList_CheckExact(__pyx_v_entries))||((__pyx_v_entries) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_entries)->tp_name), 0))) __PYX_ERR(1, 285, __pyx_L1_error)
__pyx_t_3 = __pyx_v_entries;
__Pyx_INCREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__pyx_v_self->_entries = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":274
+ /* "src/lxml/xmlerror.pxi":278
* cdef list _entries
* cdef int _offset
* def __init__(self, entries, first_error, last_error): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":283
+/* "src/lxml/xmlerror.pxi":287
* self._entries = entries
*
* cpdef copy(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 283, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_13_ListErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 283, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":287
+ /* "src/lxml/xmlerror.pxi":291
* entries.
* """
* cdef _ListErrorLog log = _ListErrorLog( # <<<<<<<<<<<<<<
* self._entries, self._first_error, self.last_error)
* log._offset = self._offset
*/
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_self->_entries);
__Pyx_GIVEREF(__pyx_v_self->_entries);
__Pyx_INCREF(__pyx_v_self->__pyx_base.last_error);
__Pyx_GIVEREF(__pyx_v_self->__pyx_base.last_error);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_self->__pyx_base.last_error);
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 287, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_log = ((struct __pyx_obj_4lxml_5etree__ListErrorLog *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":289
+ /* "src/lxml/xmlerror.pxi":293
* cdef _ListErrorLog log = _ListErrorLog(
* self._entries, self._first_error, self.last_error)
* log._offset = self._offset # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_self->_offset;
__pyx_v_log->_offset = __pyx_t_5;
- /* "src/lxml/xmlerror.pxi":290
+ /* "src/lxml/xmlerror.pxi":294
* self._entries, self._first_error, self.last_error)
* log._offset = self._offset
* return log # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_log);
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":283
+ /* "src/lxml/xmlerror.pxi":287
* self._entries = entries
*
* cpdef copy(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("copy", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_ListErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 283, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_ListErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":292
+/* "src/lxml/xmlerror.pxi":296
* return log
*
* def __iter__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_7 = NULL;
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "src/lxml/xmlerror.pxi":293
+ /* "src/lxml/xmlerror.pxi":297
*
* def __iter__(self):
* entries = self._entries # <<<<<<<<<<<<<<
__pyx_v_entries = __pyx_t_1;
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":294
+ /* "src/lxml/xmlerror.pxi":298
* def __iter__(self):
* entries = self._entries
* if self._offset: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_self->_offset != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":295
+ /* "src/lxml/xmlerror.pxi":299
* entries = self._entries
* if self._offset:
* entries = islice(entries, self._offset) # <<<<<<<<<<<<<<
* return iter(entries)
*
*/
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->_offset); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 295, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->_offset); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_4lxml_5etree_islice);
__pyx_t_4 = __pyx_v_4lxml_5etree_islice; __pyx_t_5 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_entries, __pyx_t_3};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_entries, __pyx_t_3};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 295, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF_SET(__pyx_v_entries, __pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":294
+ /* "src/lxml/xmlerror.pxi":298
* def __iter__(self):
* entries = self._entries
* if self._offset: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":296
+ /* "src/lxml/xmlerror.pxi":300
* if self._offset:
* entries = islice(entries, self._offset)
* return iter(entries) # <<<<<<<<<<<<<<
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetIter(__pyx_v_entries); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 296, __pyx_L1_error)
+ __pyx_t_1 = PyObject_GetIter(__pyx_v_entries); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":292
+ /* "src/lxml/xmlerror.pxi":296
* return log
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":298
+/* "src/lxml/xmlerror.pxi":302
* return iter(entries)
*
* def __repr__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "src/lxml/xmlerror.pxi":299
+ /* "src/lxml/xmlerror.pxi":303
*
* def __repr__(self):
* return u'\n'.join([repr(entry) for entry in self]) # <<<<<<<<<<<<<<
* def __getitem__(self, index):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(((PyObject *)__pyx_v_self))) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) {
__pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
- __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 303, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 303, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 303, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 299, __pyx_L1_error)
+ else __PYX_ERR(1, 303, __pyx_L1_error)
}
break;
}
}
__Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_5);
__pyx_t_5 = 0;
- __pyx_t_5 = PyObject_Repr(__pyx_v_entry); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_5 = PyObject_Repr(__pyx_v_entry); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 299, __pyx_L1_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__18, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 299, __pyx_L1_error)
+ __pyx_t_2 = PyUnicode_Join(__pyx_kp_u__18, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":298
+ /* "src/lxml/xmlerror.pxi":302
* return iter(entries)
*
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":301
+/* "src/lxml/xmlerror.pxi":305
* return u'\n'.join([repr(entry) for entry in self])
*
* def __getitem__(self, index): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__getitem__", 0);
__Pyx_INCREF(__pyx_v_index);
- /* "src/lxml/xmlerror.pxi":302
+ /* "src/lxml/xmlerror.pxi":306
*
* def __getitem__(self, index):
* if self._offset: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_self->_offset != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":303
+ /* "src/lxml/xmlerror.pxi":307
* def __getitem__(self, index):
* if self._offset:
* index += self._offset # <<<<<<<<<<<<<<
* return self._entries[index]
*
*/
- __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_offset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 303, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_offset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_index, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 303, __pyx_L1_error)
+ __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_index, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 307, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":302
+ /* "src/lxml/xmlerror.pxi":306
*
* def __getitem__(self, index):
* if self._offset: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":304
+ /* "src/lxml/xmlerror.pxi":308
* if self._offset:
* index += self._offset
* return self._entries[index] # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_self->_entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 304, __pyx_L1_error)
+ __PYX_ERR(1, 308, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->_entries, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 304, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->_entries, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":301
+ /* "src/lxml/xmlerror.pxi":305
* return u'\n'.join([repr(entry) for entry in self])
*
* def __getitem__(self, index): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":306
+/* "src/lxml/xmlerror.pxi":310
* return self._entries[index]
*
* def __len__(self): # <<<<<<<<<<<<<<
Py_ssize_t __pyx_t_2;
__Pyx_RefNannySetupContext("__len__", 0);
- /* "src/lxml/xmlerror.pxi":307
+ /* "src/lxml/xmlerror.pxi":311
*
* def __len__(self):
* return len(self._entries) - self._offset # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(1, 307, __pyx_L1_error)
+ __PYX_ERR(1, 311, __pyx_L1_error)
}
- __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 307, __pyx_L1_error)
+ __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 311, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = (__pyx_t_2 - __pyx_v_self->_offset);
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":306
+ /* "src/lxml/xmlerror.pxi":310
* return self._entries[index]
*
* def __len__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":309
+/* "src/lxml/xmlerror.pxi":313
* return len(self._entries) - self._offset
*
* def __contains__(self, error_type): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__contains__", 0);
- /* "src/lxml/xmlerror.pxi":311
+ /* "src/lxml/xmlerror.pxi":315
* def __contains__(self, error_type):
* cdef Py_ssize_t i
* for i, entry in enumerate(self._entries): # <<<<<<<<<<<<<<
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 311, __pyx_L1_error)
+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 315, __pyx_L1_error)
#else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 311, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 315, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_4);
__pyx_v_i = __pyx_t_1;
__pyx_t_1 = (__pyx_t_1 + 1);
- /* "src/lxml/xmlerror.pxi":312
+ /* "src/lxml/xmlerror.pxi":316
* cdef Py_ssize_t i
* for i, entry in enumerate(self._entries):
* if i < self._offset: # <<<<<<<<<<<<<<
__pyx_t_5 = ((__pyx_v_i < __pyx_v_self->_offset) != 0);
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":313
+ /* "src/lxml/xmlerror.pxi":317
* for i, entry in enumerate(self._entries):
* if i < self._offset:
* continue # <<<<<<<<<<<<<<
*/
goto __pyx_L3_continue;
- /* "src/lxml/xmlerror.pxi":312
+ /* "src/lxml/xmlerror.pxi":316
* cdef Py_ssize_t i
* for i, entry in enumerate(self._entries):
* if i < self._offset: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":314
+ /* "src/lxml/xmlerror.pxi":318
* if i < self._offset:
* continue
* if entry.type == error_type: # <<<<<<<<<<<<<<
* return True
* return False
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 314, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_entry, __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 318, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_error_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 314, __pyx_L1_error)
+ __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_error_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 318, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 314, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 318, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":315
+ /* "src/lxml/xmlerror.pxi":319
* continue
* if entry.type == error_type:
* return True # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":314
+ /* "src/lxml/xmlerror.pxi":318
* if i < self._offset:
* continue
* if entry.type == error_type: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":311
+ /* "src/lxml/xmlerror.pxi":315
* def __contains__(self, error_type):
* cdef Py_ssize_t i
* for i, entry in enumerate(self._entries): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":316
+ /* "src/lxml/xmlerror.pxi":320
* if entry.type == error_type:
* return True
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":309
+ /* "src/lxml/xmlerror.pxi":313
* return len(self._entries) - self._offset
*
* def __contains__(self, error_type): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":318
+/* "src/lxml/xmlerror.pxi":322
* return False
*
* def __nonzero__(self): # <<<<<<<<<<<<<<
Py_ssize_t __pyx_t_2;
__Pyx_RefNannySetupContext("__nonzero__", 0);
- /* "src/lxml/xmlerror.pxi":319
+ /* "src/lxml/xmlerror.pxi":323
*
* def __nonzero__(self):
* return len(self._entries) > self._offset # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(1, 319, __pyx_L1_error)
+ __PYX_ERR(1, 323, __pyx_L1_error)
}
- __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 319, __pyx_L1_error)
+ __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 323, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = (__pyx_t_2 > __pyx_v_self->_offset);
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":318
+ /* "src/lxml/xmlerror.pxi":322
* return False
*
* def __nonzero__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":321
+/* "src/lxml/xmlerror.pxi":325
* return len(self._entries) > self._offset
*
* def filter_domains(self, domains): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("filter_domains", 0);
__Pyx_INCREF(__pyx_v_domains);
- /* "src/lxml/xmlerror.pxi":326
+ /* "src/lxml/xmlerror.pxi":330
* """
* cdef _LogEntry entry
* if isinstance(domains, (int, long)): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":327
+ /* "src/lxml/xmlerror.pxi":331
* cdef _LogEntry entry
* if isinstance(domains, (int, long)):
* domains = (domains,) # <<<<<<<<<<<<<<
* filtered = [entry for entry in self if entry.domain in domains]
* return _ListErrorLog(filtered, None, None)
*/
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 327, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 331, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_domains);
__Pyx_GIVEREF(__pyx_v_domains);
__Pyx_DECREF_SET(__pyx_v_domains, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":326
+ /* "src/lxml/xmlerror.pxi":330
* """
* cdef _LogEntry entry
* if isinstance(domains, (int, long)): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":328
+ /* "src/lxml/xmlerror.pxi":332
* if isinstance(domains, (int, long)):
* domains = (domains,)
* filtered = [entry for entry in self if entry.domain in domains] # <<<<<<<<<<<<<<
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(PyList_CheckExact(((PyObject *)__pyx_v_self))) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) {
__pyx_t_5 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 332, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 332, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 332, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 328, __pyx_L1_error)
+ else __PYX_ERR(1, 332, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
- if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 328, __pyx_L1_error)
+ if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_8));
__pyx_t_8 = 0;
- __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->domain); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->domain); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_domains, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 328, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_domains, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 328, __pyx_L1_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 332, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_filtered = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":329
+ /* "src/lxml/xmlerror.pxi":333
* domains = (domains,)
* filtered = [entry for entry in self if entry.domain in domains]
* return _ListErrorLog(filtered, None, None) # <<<<<<<<<<<<<<
* def filter_types(self, types):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 329, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_filtered);
__Pyx_GIVEREF(__pyx_v_filtered);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 329, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":321
+ /* "src/lxml/xmlerror.pxi":325
* return len(self._entries) > self._offset
*
* def filter_domains(self, domains): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":331
+/* "src/lxml/xmlerror.pxi":335
* return _ListErrorLog(filtered, None, None)
*
* def filter_types(self, types): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("filter_types", 0);
__Pyx_INCREF(__pyx_v_types);
- /* "src/lxml/xmlerror.pxi":338
+ /* "src/lxml/xmlerror.pxi":342
* """
* cdef _LogEntry entry
* if isinstance(types, (int, long)): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":339
+ /* "src/lxml/xmlerror.pxi":343
* cdef _LogEntry entry
* if isinstance(types, (int, long)):
* types = (types,) # <<<<<<<<<<<<<<
* filtered = [entry for entry in self if entry.type in types]
* return _ListErrorLog(filtered, None, None)
*/
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 339, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_types);
__Pyx_GIVEREF(__pyx_v_types);
__Pyx_DECREF_SET(__pyx_v_types, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":338
+ /* "src/lxml/xmlerror.pxi":342
* """
* cdef _LogEntry entry
* if isinstance(types, (int, long)): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":340
+ /* "src/lxml/xmlerror.pxi":344
* if isinstance(types, (int, long)):
* types = (types,)
* filtered = [entry for entry in self if entry.type in types] # <<<<<<<<<<<<<<
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(PyList_CheckExact(((PyObject *)__pyx_v_self))) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) {
__pyx_t_5 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 344, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 344, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 344, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 340, __pyx_L1_error)
+ else __PYX_ERR(1, 344, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
- if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 340, __pyx_L1_error)
+ if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_8));
__pyx_t_8 = 0;
- __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->type); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->type); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_types, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 340, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_types, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 344, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 340, __pyx_L1_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 344, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_filtered = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":341
+ /* "src/lxml/xmlerror.pxi":345
* types = (types,)
* filtered = [entry for entry in self if entry.type in types]
* return _ListErrorLog(filtered, None, None) # <<<<<<<<<<<<<<
* def filter_levels(self, levels):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 341, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_filtered);
__Pyx_GIVEREF(__pyx_v_filtered);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 341, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 345, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":331
+ /* "src/lxml/xmlerror.pxi":335
* return _ListErrorLog(filtered, None, None)
*
* def filter_types(self, types): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":343
+/* "src/lxml/xmlerror.pxi":347
* return _ListErrorLog(filtered, None, None)
*
* def filter_levels(self, levels): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("filter_levels", 0);
__Pyx_INCREF(__pyx_v_levels);
- /* "src/lxml/xmlerror.pxi":350
+ /* "src/lxml/xmlerror.pxi":354
* """
* cdef _LogEntry entry
* if isinstance(levels, (int, long)): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "src/lxml/xmlerror.pxi":351
+ /* "src/lxml/xmlerror.pxi":355
* cdef _LogEntry entry
* if isinstance(levels, (int, long)):
* levels = (levels,) # <<<<<<<<<<<<<<
* filtered = [entry for entry in self if entry.level in levels]
* return _ListErrorLog(filtered, None, None)
*/
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 351, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_levels);
__Pyx_GIVEREF(__pyx_v_levels);
__Pyx_DECREF_SET(__pyx_v_levels, __pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":350
+ /* "src/lxml/xmlerror.pxi":354
* """
* cdef _LogEntry entry
* if isinstance(levels, (int, long)): # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":352
+ /* "src/lxml/xmlerror.pxi":356
* if isinstance(levels, (int, long)):
* levels = (levels,)
* filtered = [entry for entry in self if entry.level in levels] # <<<<<<<<<<<<<<
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(PyList_CheckExact(((PyObject *)__pyx_v_self))) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) {
__pyx_t_5 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 356, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_5))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 356, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 356, __pyx_L1_error)
#else
- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 352, __pyx_L1_error)
+ else __PYX_ERR(1, 356, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
- if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 352, __pyx_L1_error)
+ if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_8));
__pyx_t_8 = 0;
- __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->level); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_entry->level); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_levels, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 352, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_8, __pyx_v_levels, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 356, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 352, __pyx_L1_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 356, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_filtered = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "src/lxml/xmlerror.pxi":353
+ /* "src/lxml/xmlerror.pxi":357
* levels = (levels,)
* filtered = [entry for entry in self if entry.level in levels]
* return _ListErrorLog(filtered, None, None) # <<<<<<<<<<<<<<
* def filter_from_level(self, level):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 353, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_filtered);
__Pyx_GIVEREF(__pyx_v_filtered);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None);
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 353, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":343
+ /* "src/lxml/xmlerror.pxi":347
* return _ListErrorLog(filtered, None, None)
*
* def filter_levels(self, levels): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":355
+/* "src/lxml/xmlerror.pxi":359
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_level(self, level): # <<<<<<<<<<<<<<
int __pyx_t_7;
__Pyx_RefNannySetupContext("filter_from_level", 0);
- /* "src/lxml/xmlerror.pxi":361
+ /* "src/lxml/xmlerror.pxi":365
* """
* cdef _LogEntry entry
* filtered = [entry for entry in self if entry.level >= level] # <<<<<<<<<<<<<<
* return _ListErrorLog(filtered, None, None)
*
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(((PyObject *)__pyx_v_self))) || PyTuple_CheckExact(((PyObject *)__pyx_v_self))) {
__pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
- __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 365, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_4)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 365, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 365, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 361, __pyx_L1_error)
+ else __PYX_ERR(1, 365, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_5);
}
- if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 361, __pyx_L1_error)
+ if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__LogEntry))))) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_5));
__pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_entry->level); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_entry->level); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_v_level, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_v_level, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 361, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 365, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_7) {
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 361, __pyx_L1_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_entry))) __PYX_ERR(1, 365, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_filtered = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":362
+ /* "src/lxml/xmlerror.pxi":366
* cdef _LogEntry entry
* filtered = [entry for entry in self if entry.level >= level]
* return _ListErrorLog(filtered, None, None) # <<<<<<<<<<<<<<
* def filter_from_fatals(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 362, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_filtered);
__Pyx_GIVEREF(__pyx_v_filtered);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None);
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 362, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":355
+ /* "src/lxml/xmlerror.pxi":359
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_level(self, level): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":364
+/* "src/lxml/xmlerror.pxi":368
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_fatals(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("filter_from_fatals", 0);
- /* "src/lxml/xmlerror.pxi":369
+ /* "src/lxml/xmlerror.pxi":373
* Convenience method to get all fatal error messages.
* """
* return self.filter_from_level(ErrorLevels.FATAL) # <<<<<<<<<<<<<<
* def filter_from_errors(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 369, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 369, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_FATAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 369, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_FATAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 369, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":364
+ /* "src/lxml/xmlerror.pxi":368
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_fatals(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":371
+/* "src/lxml/xmlerror.pxi":375
* return self.filter_from_level(ErrorLevels.FATAL)
*
* def filter_from_errors(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("filter_from_errors", 0);
- /* "src/lxml/xmlerror.pxi":376
+ /* "src/lxml/xmlerror.pxi":380
* Convenience method to get all error messages or worse.
* """
* return self.filter_from_level(ErrorLevels.ERROR) # <<<<<<<<<<<<<<
* def filter_from_warnings(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 376, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 376, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 376, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 376, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 380, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":371
+ /* "src/lxml/xmlerror.pxi":375
* return self.filter_from_level(ErrorLevels.FATAL)
*
* def filter_from_errors(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":378
+/* "src/lxml/xmlerror.pxi":382
* return self.filter_from_level(ErrorLevels.ERROR)
*
* def filter_from_warnings(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("filter_from_warnings", 0);
- /* "src/lxml/xmlerror.pxi":383
+ /* "src/lxml/xmlerror.pxi":387
* Convenience method to get all warnings or worse.
* """
* return self.filter_from_level(ErrorLevels.WARNING) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 383, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_from_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 387, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 383, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 387, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 383, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 387, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 383, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 387, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":378
+ /* "src/lxml/xmlerror.pxi":382
* return self.filter_from_level(ErrorLevels.ERROR)
*
* def filter_from_warnings(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":400
+/* "src/lxml/xmlerror.pxi":404
* cdef _BaseErrorLog old_xslt_error_log
*
* cdef int push_error_log(self, _BaseErrorLog log) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("push_error_log", 0);
- /* "src/lxml/xmlerror.pxi":401
+ /* "src/lxml/xmlerror.pxi":405
*
* cdef int push_error_log(self, _BaseErrorLog log) except -1:
* self.old_error_func = xmlerror.xmlStructuredError # <<<<<<<<<<<<<<
*/
__pyx_v_self->old_error_func = xmlStructuredError;
- /* "src/lxml/xmlerror.pxi":402
+ /* "src/lxml/xmlerror.pxi":406
* cdef int push_error_log(self, _BaseErrorLog log) except -1:
* self.old_error_func = xmlerror.xmlStructuredError
* self.old_error_context = xmlerror.xmlStructuredErrorContext # <<<<<<<<<<<<<<
*/
__pyx_v_self->old_error_context = xmlStructuredErrorContext;
- /* "src/lxml/xmlerror.pxi":403
+ /* "src/lxml/xmlerror.pxi":407
* self.old_error_func = xmlerror.xmlStructuredError
* self.old_error_context = xmlerror.xmlStructuredErrorContext
* xmlerror.xmlSetStructuredErrorFunc( # <<<<<<<<<<<<<<
*/
xmlSetStructuredErrorFunc(((void *)__pyx_v_log), ((xmlStructuredErrorFunc)__pyx_f_4lxml_5etree__receiveError));
- /* "src/lxml/xmlerror.pxi":407
+ /* "src/lxml/xmlerror.pxi":411
*
* # xslt.xsltSetGenericErrorFunc() is not thread-local => keep error log in TLS
* self.old_xslt_error_func = xslt.xsltGenericError # <<<<<<<<<<<<<<
*/
__pyx_v_self->old_xslt_error_func = xsltGenericError;
- /* "src/lxml/xmlerror.pxi":408
+ /* "src/lxml/xmlerror.pxi":412
* # xslt.xsltSetGenericErrorFunc() is not thread-local => keep error log in TLS
* self.old_xslt_error_func = xslt.xsltGenericError
* self.old_xslt_error_context = xslt.xsltGenericErrorContext # <<<<<<<<<<<<<<
*/
__pyx_v_self->old_xslt_error_context = xsltGenericErrorContext;
- /* "src/lxml/xmlerror.pxi":409
+ /* "src/lxml/xmlerror.pxi":413
* self.old_xslt_error_func = xslt.xsltGenericError
* self.old_xslt_error_context = xslt.xsltGenericErrorContext
* self.old_xslt_error_log = _getThreadErrorLog(XSLT_ERROR_LOG) # <<<<<<<<<<<<<<
* _setThreadErrorLog(XSLT_ERROR_LOG, log)
* xslt.xsltSetGenericErrorFunc(
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_XSLTErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 409, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_XSLTErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->old_xslt_error_log);
__pyx_v_self->old_xslt_error_log = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":410
+ /* "src/lxml/xmlerror.pxi":414
* self.old_xslt_error_context = xslt.xsltGenericErrorContext
* self.old_xslt_error_log = _getThreadErrorLog(XSLT_ERROR_LOG)
* _setThreadErrorLog(XSLT_ERROR_LOG, log) # <<<<<<<<<<<<<<
* xslt.xsltSetGenericErrorFunc(
* NULL, <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_XSLTErrorLog, __pyx_v_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 410, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_XSLTErrorLog, __pyx_v_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":411
+ /* "src/lxml/xmlerror.pxi":415
* self.old_xslt_error_log = _getThreadErrorLog(XSLT_ERROR_LOG)
* _setThreadErrorLog(XSLT_ERROR_LOG, log)
* xslt.xsltSetGenericErrorFunc( # <<<<<<<<<<<<<<
*/
xsltSetGenericErrorFunc(NULL, ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__receiveXSLTError));
- /* "src/lxml/xmlerror.pxi":413
+ /* "src/lxml/xmlerror.pxi":417
* xslt.xsltSetGenericErrorFunc(
* NULL, <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":400
+ /* "src/lxml/xmlerror.pxi":404
* cdef _BaseErrorLog old_xslt_error_log
*
* cdef int push_error_log(self, _BaseErrorLog log) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":415
+/* "src/lxml/xmlerror.pxi":419
* return 0
*
* cdef int pop_error_log(self) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("pop_error_log", 0);
- /* "src/lxml/xmlerror.pxi":416
+ /* "src/lxml/xmlerror.pxi":420
*
* cdef int pop_error_log(self) except -1:
* xmlerror.xmlSetStructuredErrorFunc( # <<<<<<<<<<<<<<
*/
xmlSetStructuredErrorFunc(__pyx_v_self->old_error_context, __pyx_v_self->old_error_func);
- /* "src/lxml/xmlerror.pxi":418
+ /* "src/lxml/xmlerror.pxi":422
* xmlerror.xmlSetStructuredErrorFunc(
* self.old_error_context, self.old_error_func)
* xslt.xsltSetGenericErrorFunc( # <<<<<<<<<<<<<<
*/
xsltSetGenericErrorFunc(__pyx_v_self->old_xslt_error_context, __pyx_v_self->old_xslt_error_func);
- /* "src/lxml/xmlerror.pxi":420
+ /* "src/lxml/xmlerror.pxi":424
* xslt.xsltSetGenericErrorFunc(
* self.old_xslt_error_context, self.old_xslt_error_func)
* _setThreadErrorLog(XSLT_ERROR_LOG, self.old_xslt_error_log) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->old_xslt_error_log);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_XSLTErrorLog, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 420, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_XSLTErrorLog, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 424, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":421
+ /* "src/lxml/xmlerror.pxi":425
* self.old_xslt_error_context, self.old_xslt_error_func)
* _setThreadErrorLog(XSLT_ERROR_LOG, self.old_xslt_error_log)
* self.old_xslt_error_log= None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->old_xslt_error_log));
__pyx_v_self->old_xslt_error_log = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)Py_None);
- /* "src/lxml/xmlerror.pxi":422
+ /* "src/lxml/xmlerror.pxi":426
* _setThreadErrorLog(XSLT_ERROR_LOG, self.old_xslt_error_log)
* self.old_xslt_error_log= None
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":415
+ /* "src/lxml/xmlerror.pxi":419
* return 0
*
* cdef int pop_error_log(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":427
+/* "src/lxml/xmlerror.pxi":431
* cdef class _ErrorLog(_ListErrorLog):
* cdef list _logContexts
* def __cinit__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "src/lxml/xmlerror.pxi":428
+ /* "src/lxml/xmlerror.pxi":432
* cdef list _logContexts
* def __cinit__(self):
* self._logContexts = [] # <<<<<<<<<<<<<<
*
* def __init__(self):
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 428, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_logContexts);
__pyx_v_self->_logContexts = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":427
+ /* "src/lxml/xmlerror.pxi":431
* cdef class _ErrorLog(_ListErrorLog):
* cdef list _logContexts
* def __cinit__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":430
+/* "src/lxml/xmlerror.pxi":434
* self._logContexts = []
*
* def __init__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "src/lxml/xmlerror.pxi":431
+ /* "src/lxml/xmlerror.pxi":435
*
* def __init__(self):
* _ListErrorLog.__init__(self, [], None, None) # <<<<<<<<<<<<<<
*
* @cython.final
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_5 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[5] = {__pyx_t_4, ((PyObject *)__pyx_v_self), __pyx_t_3, Py_None, Py_None};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[5] = {__pyx_t_4, ((PyObject *)__pyx_v_self), __pyx_t_3, Py_None, Py_None};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 4+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
- __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(4+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_5, Py_None);
__pyx_t_3 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":430
+ /* "src/lxml/xmlerror.pxi":434
* self._logContexts = []
*
* def __init__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":434
+/* "src/lxml/xmlerror.pxi":438
*
* @cython.final
* cdef int __enter__(self) except -1: # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("__enter__", 0);
- /* "src/lxml/xmlerror.pxi":435
+ /* "src/lxml/xmlerror.pxi":439
* @cython.final
* cdef int __enter__(self) except -1:
* return self.connect() # <<<<<<<<<<<<<<
*
* def __exit__(self, *args):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_connect(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 435, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_connect(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 439, __pyx_L1_error)
__pyx_r = __pyx_t_1;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":434
+ /* "src/lxml/xmlerror.pxi":438
*
* @cython.final
* cdef int __enter__(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":437
+/* "src/lxml/xmlerror.pxi":441
* return self.connect()
*
* def __exit__(self, *args): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("__exit__", 0);
- /* "src/lxml/xmlerror.pxi":439
+ /* "src/lxml/xmlerror.pxi":443
* def __exit__(self, *args):
* # TODO: make this a cdef function when Cython supports it
* self.disconnect() # <<<<<<<<<<<<<<
*
* @cython.final
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_disconnect(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 439, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_disconnect(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 443, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":437
+ /* "src/lxml/xmlerror.pxi":441
* return self.connect()
*
* def __exit__(self, *args): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":442
+/* "src/lxml/xmlerror.pxi":446
*
* @cython.final
* cdef int connect(self) except -1: # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("connect", 0);
- /* "src/lxml/xmlerror.pxi":443
+ /* "src/lxml/xmlerror.pxi":447
* @cython.final
* cdef int connect(self) except -1:
* self._first_error = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._first_error));
__pyx_v_self->__pyx_base.__pyx_base._first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)Py_None);
- /* "src/lxml/xmlerror.pxi":444
+ /* "src/lxml/xmlerror.pxi":448
* cdef int connect(self) except -1:
* self._first_error = None
* del self._entries[:] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base._entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 444, __pyx_L1_error)
+ __PYX_ERR(1, 448, __pyx_L1_error)
}
- if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base._entries, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(1, 444, __pyx_L1_error)
+ if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base._entries, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(1, 448, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":446
+ /* "src/lxml/xmlerror.pxi":450
* del self._entries[:]
*
* cdef _ErrorLogContext context = _ErrorLogContext.__new__(_ErrorLogContext) # <<<<<<<<<<<<<<
* context.push_error_log(self)
* self._logContexts.append(context)
*/
- __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__ErrorLogContext(((PyTypeObject *)__pyx_ptype_4lxml_5etree__ErrorLogContext), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_5etree__ErrorLogContext(((PyTypeObject *)__pyx_ptype_4lxml_5etree__ErrorLogContext), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 450, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ErrorLogContext *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":447
+ /* "src/lxml/xmlerror.pxi":451
*
* cdef _ErrorLogContext context = _ErrorLogContext.__new__(_ErrorLogContext)
* context.push_error_log(self) # <<<<<<<<<<<<<<
* self._logContexts.append(context)
* return 0
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_16_ErrorLogContext_push_error_log(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 447, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_16_ErrorLogContext_push_error_log(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 451, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":448
+ /* "src/lxml/xmlerror.pxi":452
* cdef _ErrorLogContext context = _ErrorLogContext.__new__(_ErrorLogContext)
* context.push_error_log(self)
* self._logContexts.append(context) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_logContexts == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(1, 448, __pyx_L1_error)
+ __PYX_ERR(1, 452, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_logContexts, ((PyObject *)__pyx_v_context)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 448, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_logContexts, ((PyObject *)__pyx_v_context)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 452, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":449
+ /* "src/lxml/xmlerror.pxi":453
* context.push_error_log(self)
* self._logContexts.append(context)
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":442
+ /* "src/lxml/xmlerror.pxi":446
*
* @cython.final
* cdef int connect(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":452
+/* "src/lxml/xmlerror.pxi":456
*
* @cython.final
* cdef int disconnect(self) except -1: # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("disconnect", 0);
- /* "src/lxml/xmlerror.pxi":453
+ /* "src/lxml/xmlerror.pxi":457
* @cython.final
* cdef int disconnect(self) except -1:
* cdef _ErrorLogContext context = self._logContexts.pop() # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_logContexts == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop");
- __PYX_ERR(1, 453, __pyx_L1_error)
+ __PYX_ERR(1, 457, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_self->_logContexts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 453, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyList_Pop(__pyx_v_self->_logContexts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ErrorLogContext))))) __PYX_ERR(1, 453, __pyx_L1_error)
+ if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ErrorLogContext))))) __PYX_ERR(1, 457, __pyx_L1_error)
__pyx_v_context = ((struct __pyx_obj_4lxml_5etree__ErrorLogContext *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":454
+ /* "src/lxml/xmlerror.pxi":458
* cdef int disconnect(self) except -1:
* cdef _ErrorLogContext context = self._logContexts.pop()
* context.pop_error_log() # <<<<<<<<<<<<<<
* return 0
*
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_16_ErrorLogContext_pop_error_log(__pyx_v_context); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 454, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_16_ErrorLogContext_pop_error_log(__pyx_v_context); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 458, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":455
+ /* "src/lxml/xmlerror.pxi":459
* cdef _ErrorLogContext context = self._logContexts.pop()
* context.pop_error_log()
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":452
+ /* "src/lxml/xmlerror.pxi":456
*
* @cython.final
* cdef int disconnect(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":457
+/* "src/lxml/xmlerror.pxi":461
* return 0
*
* cpdef clear(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_9_ErrorLog_7clear)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 457, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":458
+ /* "src/lxml/xmlerror.pxi":462
*
* cpdef clear(self):
* self._first_error = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._first_error));
__pyx_v_self->__pyx_base.__pyx_base._first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)Py_None);
- /* "src/lxml/xmlerror.pxi":459
+ /* "src/lxml/xmlerror.pxi":463
* cpdef clear(self):
* self._first_error = None
* self.last_error = None # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->__pyx_base.__pyx_base.last_error);
__pyx_v_self->__pyx_base.__pyx_base.last_error = Py_None;
- /* "src/lxml/xmlerror.pxi":460
+ /* "src/lxml/xmlerror.pxi":464
* self._first_error = None
* self.last_error = None
* self._offset = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base._offset = 0;
- /* "src/lxml/xmlerror.pxi":461
+ /* "src/lxml/xmlerror.pxi":465
* self.last_error = None
* self._offset = 0
* del self._entries[:] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base._entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 461, __pyx_L1_error)
+ __PYX_ERR(1, 465, __pyx_L1_error)
}
- if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base._entries, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(1, 461, __pyx_L1_error)
+ if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base._entries, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(1, 465, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":457
+ /* "src/lxml/xmlerror.pxi":461
* return 0
*
* cpdef clear(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("clear", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_clear(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 457, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_clear(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":463
+/* "src/lxml/xmlerror.pxi":467
* del self._entries[:]
*
* cpdef copy(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 463, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_9_ErrorLog_9copy)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 463, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":466
+ /* "src/lxml/xmlerror.pxi":470
* u"""Creates a shallow copy of this error log and the list of entries.
* """
* return _ListErrorLog( # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "src/lxml/xmlerror.pxi":467
+ /* "src/lxml/xmlerror.pxi":471
* """
* return _ListErrorLog(
* self._entries[self._offset:], # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base._entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 467, __pyx_L1_error)
+ __PYX_ERR(1, 471, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_self->__pyx_base._entries, __pyx_v_self->__pyx_base._offset, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_self->__pyx_base._entries, __pyx_v_self->__pyx_base._offset, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 471, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "src/lxml/xmlerror.pxi":466
+ /* "src/lxml/xmlerror.pxi":470
* u"""Creates a shallow copy of this error log and the list of entries.
* """
* return _ListErrorLog( # <<<<<<<<<<<<<<
* self._entries[self._offset:],
* self._first_error, self.last_error)
*/
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 466, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_v_self->__pyx_base.__pyx_base.last_error);
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_self->__pyx_base.__pyx_base.last_error);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 466, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":463
+ /* "src/lxml/xmlerror.pxi":467
* del self._entries[:]
*
* cpdef copy(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("copy", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 463, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":470
+/* "src/lxml/xmlerror.pxi":474
* self._first_error, self.last_error)
*
* def __iter__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "src/lxml/xmlerror.pxi":471
+ /* "src/lxml/xmlerror.pxi":475
*
* def __iter__(self):
* return iter(self._entries[self._offset:]) # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_self->__pyx_base._entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 471, __pyx_L1_error)
+ __PYX_ERR(1, 475, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_self->__pyx_base._entries, __pyx_v_self->__pyx_base._offset, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 471, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_self->__pyx_base._entries, __pyx_v_self->__pyx_base._offset, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 471, __pyx_L1_error)
+ __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":470
+ /* "src/lxml/xmlerror.pxi":474
* self._first_error, self.last_error)
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":473
+/* "src/lxml/xmlerror.pxi":477
* return iter(self._entries[self._offset:])
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 473, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_9_ErrorLog_13receive)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_entry)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_entry));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 473, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":474
+ /* "src/lxml/xmlerror.pxi":478
*
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":475
+ /* "src/lxml/xmlerror.pxi":479
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._first_error));
__pyx_v_self->__pyx_base.__pyx_base._first_error = __pyx_v_entry;
- /* "src/lxml/xmlerror.pxi":474
+ /* "src/lxml/xmlerror.pxi":478
*
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":476
+ /* "src/lxml/xmlerror.pxi":480
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
* self._entries.append(entry) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base._entries == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(1, 476, __pyx_L1_error)
+ __PYX_ERR(1, 480, __pyx_L1_error)
}
- __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 476, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 480, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":473
+ /* "src/lxml/xmlerror.pxi":477
* return iter(self._entries[self._offset:])
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 473, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 477, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_9_ErrorLog_12receive(((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_v_self), ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_v_entry));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("receive", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 473, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_ErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":479
+/* "src/lxml/xmlerror.pxi":483
*
* cdef class _DomainErrorLog(_ErrorLog):
* def __init__(self, domains): # <<<<<<<<<<<<<<
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 479, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 483, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 479, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 483, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._DomainErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "src/lxml/xmlerror.pxi":480
+ /* "src/lxml/xmlerror.pxi":484
* cdef class _DomainErrorLog(_ErrorLog):
* def __init__(self, domains):
* _ErrorLog.__init__(self) # <<<<<<<<<<<<<<
* self._accepted_domains = tuple(domains)
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 480, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 480, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":481
+ /* "src/lxml/xmlerror.pxi":485
* def __init__(self, domains):
* _ErrorLog.__init__(self)
* self._accepted_domains = tuple(domains) # <<<<<<<<<<<<<<
*
* cpdef receive(self, _LogEntry entry):
*/
- __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_domains); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 481, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_domains); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 485, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accepted_domains, __pyx_t_1) < 0) __PYX_ERR(1, 481, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accepted_domains, __pyx_t_1) < 0) __PYX_ERR(1, 485, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":479
+ /* "src/lxml/xmlerror.pxi":483
*
* cdef class _DomainErrorLog(_ErrorLog):
* def __init__(self, domains): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":483
+/* "src/lxml/xmlerror.pxi":487
* self._accepted_domains = tuple(domains)
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 483, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_entry)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_entry));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 483, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":484
+ /* "src/lxml/xmlerror.pxi":488
*
* cpdef receive(self, _LogEntry entry):
* if entry.domain in self._accepted_domains: # <<<<<<<<<<<<<<
* _ErrorLog.receive(self, entry)
*
*/
- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_entry->domain); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 484, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_entry->domain); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accepted_domains); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 484, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_accepted_domains); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 484, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 488, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
- /* "src/lxml/xmlerror.pxi":485
+ /* "src/lxml/xmlerror.pxi":489
* cpdef receive(self, _LogEntry entry):
* if entry.domain in self._accepted_domains:
* _ErrorLog.receive(self, entry) # <<<<<<<<<<<<<<
*
* cdef class _RotatingErrorLog(_ErrorLog):
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_9_ErrorLog_receive(((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_v_self), __pyx_v_entry, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 485, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_9_ErrorLog_receive(((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_v_self), __pyx_v_entry, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":484
+ /* "src/lxml/xmlerror.pxi":488
*
* cpdef receive(self, _LogEntry entry):
* if entry.domain in self._accepted_domains: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":483
+ /* "src/lxml/xmlerror.pxi":487
* self._accepted_domains = tuple(domains)
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 483, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 487, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_15_DomainErrorLog_2receive(((struct __pyx_obj_4lxml_5etree__DomainErrorLog *)__pyx_v_self), ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_v_entry));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("receive", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_15_DomainErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 483, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_15_DomainErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":489
+/* "src/lxml/xmlerror.pxi":493
* cdef class _RotatingErrorLog(_ErrorLog):
* cdef int _max_len
* def __init__(self, max_len): # <<<<<<<<<<<<<<
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 489, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 493, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 489, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 493, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._RotatingErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
int __pyx_t_4;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "src/lxml/xmlerror.pxi":490
+ /* "src/lxml/xmlerror.pxi":494
* cdef int _max_len
* def __init__(self, max_len):
* _ErrorLog.__init__(self) # <<<<<<<<<<<<<<
* self._max_len = max_len
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 490, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 494, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 490, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 494, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":491
+ /* "src/lxml/xmlerror.pxi":495
* def __init__(self, max_len):
* _ErrorLog.__init__(self)
* self._max_len = max_len # <<<<<<<<<<<<<<
*
* cpdef receive(self, _LogEntry entry):
*/
- __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_max_len); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 491, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_max_len); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 495, __pyx_L1_error)
__pyx_v_self->_max_len = __pyx_t_4;
- /* "src/lxml/xmlerror.pxi":489
+ /* "src/lxml/xmlerror.pxi":493
* cdef class _RotatingErrorLog(_ErrorLog):
* cdef int _max_len
* def __init__(self, max_len): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":493
+/* "src/lxml/xmlerror.pxi":497
* self._max_len = max_len
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_entry)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_entry));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 493, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":494
+ /* "src/lxml/xmlerror.pxi":498
*
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":495
+ /* "src/lxml/xmlerror.pxi":499
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base._first_error));
__pyx_v_self->__pyx_base.__pyx_base.__pyx_base._first_error = __pyx_v_entry;
- /* "src/lxml/xmlerror.pxi":494
+ /* "src/lxml/xmlerror.pxi":498
*
* cpdef receive(self, _LogEntry entry):
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":496
+ /* "src/lxml/xmlerror.pxi":500
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
* self._entries.append(entry) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base.__pyx_base._entries == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(1, 496, __pyx_L1_error)
+ __PYX_ERR(1, 500, __pyx_L1_error)
}
- __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base.__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 496, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base.__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 500, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":498
+ /* "src/lxml/xmlerror.pxi":502
* self._entries.append(entry)
*
* if len(self._entries) > self._max_len: # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(1, 498, __pyx_L1_error)
+ __PYX_ERR(1, 502, __pyx_L1_error)
}
- __pyx_t_9 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 498, __pyx_L1_error)
+ __pyx_t_9 = PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 502, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = ((__pyx_t_9 > __pyx_v_self->_max_len) != 0);
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":499
+ /* "src/lxml/xmlerror.pxi":503
*
* if len(self._entries) > self._max_len:
* self._offset += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base.__pyx_base._offset = (__pyx_v_self->__pyx_base.__pyx_base._offset + 1);
- /* "src/lxml/xmlerror.pxi":500
+ /* "src/lxml/xmlerror.pxi":504
* if len(self._entries) > self._max_len:
* self._offset += 1
* if self._offset > self._max_len // 3: # <<<<<<<<<<<<<<
__pyx_t_5 = ((__pyx_v_self->__pyx_base.__pyx_base._offset > __Pyx_div_long(__pyx_v_self->_max_len, 3)) != 0);
if (__pyx_t_5) {
- /* "src/lxml/xmlerror.pxi":501
+ /* "src/lxml/xmlerror.pxi":505
* self._offset += 1
* if self._offset > self._max_len // 3:
* offset = self._offset # <<<<<<<<<<<<<<
__pyx_t_10 = __pyx_v_self->__pyx_base.__pyx_base._offset;
__pyx_v_offset = __pyx_t_10;
- /* "src/lxml/xmlerror.pxi":502
+ /* "src/lxml/xmlerror.pxi":506
* if self._offset > self._max_len // 3:
* offset = self._offset
* self._offset = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base.__pyx_base._offset = 0;
- /* "src/lxml/xmlerror.pxi":503
+ /* "src/lxml/xmlerror.pxi":507
* offset = self._offset
* self._offset = 0
* del self._entries[:offset] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->__pyx_base.__pyx_base._entries == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(1, 503, __pyx_L1_error)
+ __PYX_ERR(1, 507, __pyx_L1_error)
}
- if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base.__pyx_base._entries, 0, __pyx_v_offset, NULL, NULL, NULL, 0, 1, 1) < 0) __PYX_ERR(1, 503, __pyx_L1_error)
+ if (__Pyx_PyObject_DelSlice(__pyx_v_self->__pyx_base.__pyx_base._entries, 0, __pyx_v_offset, NULL, NULL, NULL, 0, 1, 1) < 0) __PYX_ERR(1, 507, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":500
+ /* "src/lxml/xmlerror.pxi":504
* if len(self._entries) > self._max_len:
* self._offset += 1
* if self._offset > self._max_len // 3: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":498
+ /* "src/lxml/xmlerror.pxi":502
* self._entries.append(entry)
*
* if len(self._entries) > self._max_len: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":493
+ /* "src/lxml/xmlerror.pxi":497
* self._max_len = max_len
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 493, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "entry", 0))) __PYX_ERR(1, 497, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_17_RotatingErrorLog_2receive(((struct __pyx_obj_4lxml_5etree__RotatingErrorLog *)__pyx_v_self), ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_v_entry));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("receive", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_17_RotatingErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_17_RotatingErrorLog_receive(__pyx_v_self, __pyx_v_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":528
+/* "src/lxml/xmlerror.pxi":532
* cdef object _map_level
* cdef object _log
* def __init__(self, logger_name=None, logger=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 528, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 532, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 528, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 532, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.PyErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("__init__", 0);
__Pyx_INCREF(__pyx_v_logger);
- /* "src/lxml/xmlerror.pxi":529
+ /* "src/lxml/xmlerror.pxi":533
* cdef object _log
* def __init__(self, logger_name=None, logger=None):
* _BaseErrorLog.__init__(self, None, None) # <<<<<<<<<<<<<<
* import logging
* self.level_map = {
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 529, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, ((PyObject *)__pyx_v_self), Py_None, Py_None};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 529, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 533, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, ((PyObject *)__pyx_v_self), Py_None, Py_None};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 529, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 533, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#endif
{
- __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 529, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, Py_None);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 529, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":530
+ /* "src/lxml/xmlerror.pxi":534
* def __init__(self, logger_name=None, logger=None):
* _BaseErrorLog.__init__(self, None, None)
* import logging # <<<<<<<<<<<<<<
* self.level_map = {
* ErrorLevels.WARNING : logging.WARNING,
*/
- __pyx_t_1 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 530, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_logging = __pyx_t_1;
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":532
+ /* "src/lxml/xmlerror.pxi":536
* import logging
* self.level_map = {
* ErrorLevels.WARNING : logging.WARNING, # <<<<<<<<<<<<<<
* ErrorLevels.ERROR : logging.ERROR,
* ErrorLevels.FATAL : logging.CRITICAL
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 532, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 532, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 532, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 532, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_WARNING); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 532, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":533
+ /* "src/lxml/xmlerror.pxi":537
* self.level_map = {
* ErrorLevels.WARNING : logging.WARNING,
* ErrorLevels.ERROR : logging.ERROR, # <<<<<<<<<<<<<<
* ErrorLevels.FATAL : logging.CRITICAL
* }
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 533, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 533, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 533, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 532, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":534
+ /* "src/lxml/xmlerror.pxi":538
* ErrorLevels.WARNING : logging.WARNING,
* ErrorLevels.ERROR : logging.ERROR,
* ErrorLevels.FATAL : logging.CRITICAL # <<<<<<<<<<<<<<
* }
* self._map_level = self.level_map.get
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 534, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FATAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 534, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FATAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_CRITICAL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 534, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_CRITICAL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 532, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(1, 536, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":531
+ /* "src/lxml/xmlerror.pxi":535
* _BaseErrorLog.__init__(self, None, None)
* import logging
* self.level_map = { # <<<<<<<<<<<<<<
__pyx_v_self->level_map = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":536
+ /* "src/lxml/xmlerror.pxi":540
* ErrorLevels.FATAL : logging.CRITICAL
* }
* self._map_level = self.level_map.get # <<<<<<<<<<<<<<
* if logger is None:
* if logger_name:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->level_map, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 536, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->level_map, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 540, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_map_level);
__pyx_v_self->_map_level = __pyx_t_1;
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":537
+ /* "src/lxml/xmlerror.pxi":541
* }
* self._map_level = self.level_map.get
* if logger is None: # <<<<<<<<<<<<<<
__pyx_t_7 = (__pyx_t_6 != 0);
if (__pyx_t_7) {
- /* "src/lxml/xmlerror.pxi":538
+ /* "src/lxml/xmlerror.pxi":542
* self._map_level = self.level_map.get
* if logger is None:
* if logger_name: # <<<<<<<<<<<<<<
* logger = logging.getLogger(logger_name)
* else:
*/
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_logger_name); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 538, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_logger_name); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 542, __pyx_L1_error)
if (__pyx_t_7) {
- /* "src/lxml/xmlerror.pxi":539
+ /* "src/lxml/xmlerror.pxi":543
* if logger is None:
* if logger_name:
* logger = logging.getLogger(logger_name) # <<<<<<<<<<<<<<
* else:
* logger = logging.getLogger()
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 539, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 543, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_logger_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_logger_name);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 539, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 543, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_logger, __pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":538
+ /* "src/lxml/xmlerror.pxi":542
* self._map_level = self.level_map.get
* if logger is None:
* if logger_name: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "src/lxml/xmlerror.pxi":541
+ /* "src/lxml/xmlerror.pxi":545
* logger = logging.getLogger(logger_name)
* else:
* logger = logging.getLogger() # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 541, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_logging, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 541, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_logger, __pyx_t_1);
}
__pyx_L4:;
- /* "src/lxml/xmlerror.pxi":537
+ /* "src/lxml/xmlerror.pxi":541
* }
* self._map_level = self.level_map.get
* if logger is None: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":542
+ /* "src/lxml/xmlerror.pxi":546
* else:
* logger = logging.getLogger()
* self._log = logger.log # <<<<<<<<<<<<<<
*
* cpdef copy(self):
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_logger, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 542, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_logger, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 546, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_log);
__pyx_v_self->_log = __pyx_t_1;
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":528
+ /* "src/lxml/xmlerror.pxi":532
* cdef object _map_level
* cdef object _log
* def __init__(self, logger_name=None, logger=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":544
+/* "src/lxml/xmlerror.pxi":548
* self._log = logger.log
*
* cpdef copy(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 544, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_10PyErrorLog_3copy)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 544, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":547
+ /* "src/lxml/xmlerror.pxi":551
* u"""Dummy method that returns an empty error log.
* """
* return _ListErrorLog([], None, None) # <<<<<<<<<<<<<<
* def log(self, log_entry, message, *args):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 547, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 547, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 547, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":544
+ /* "src/lxml/xmlerror.pxi":548
* self._log = logger.log
*
* cpdef copy(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("copy", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_10PyErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 544, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_10PyErrorLog_copy(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":549
+/* "src/lxml/xmlerror.pxi":553
* return _ListErrorLog([], None, None)
*
* def log(self, log_entry, message, *args): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_message)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("log", 0, 2, 2, 1); __PYX_ERR(1, 549, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("log", 0, 2, 2, 1); __PYX_ERR(1, 553, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 2) ? pos_args : 2;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "log") < 0)) __PYX_ERR(1, 549, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "log") < 0)) __PYX_ERR(1, 553, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 2) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("log", 0, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 549, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("log", 0, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 553, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_AddTraceback("lxml.etree.PyErrorLog.log", __pyx_clineno, __pyx_lineno, __pyx_filename);
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("log", 0);
- /* "src/lxml/xmlerror.pxi":562
+ /* "src/lxml/xmlerror.pxi":566
* """
* self._log(
* self._map_level(log_entry.level, 0), # <<<<<<<<<<<<<<
* message, *args
* )
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_log_entry, __pyx_n_s_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 562, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_log_entry, __pyx_n_s_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_self->_map_level);
__pyx_t_3 = __pyx_v_self->_map_level; __pyx_t_4 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_int_0};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 562, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 566, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_int_0};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 562, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 566, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else
#endif
{
- __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 562, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_int_0);
__pyx_t_2 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 562, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":561
+ /* "src/lxml/xmlerror.pxi":565
* override the .receive() method instead of this one.
* """
* self._log( # <<<<<<<<<<<<<<
* self._map_level(log_entry.level, 0),
* message, *args
*/
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 561, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 565, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_message);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":563
+ /* "src/lxml/xmlerror.pxi":567
* self._log(
* self._map_level(log_entry.level, 0),
* message, *args # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 561, __pyx_L1_error)
+ __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 565, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":561
+ /* "src/lxml/xmlerror.pxi":565
* override the .receive() method instead of this one.
* """
* self._log( # <<<<<<<<<<<<<<
* self._map_level(log_entry.level, 0),
* message, *args
*/
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_self->_log, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 561, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_self->_log, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 565, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":549
+ /* "src/lxml/xmlerror.pxi":553
* return _ListErrorLog([], None, None)
*
* def log(self, log_entry, message, *args): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":566
+/* "src/lxml/xmlerror.pxi":570
* )
*
* cpdef receive(self, _LogEntry log_entry): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 566, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_10PyErrorLog_7receive)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_log_entry)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_log_entry));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 566, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "src/lxml/xmlerror.pxi":577
+ /* "src/lxml/xmlerror.pxi":581
* format.
* """
* self.log(log_entry, repr(log_entry)) # <<<<<<<<<<<<<<
*
* # thread-local, global list log to collect error output messages from
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyObject_Repr(((PyObject *)__pyx_v_log_entry)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_3 = PyObject_Repr(((PyObject *)__pyx_v_log_entry)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_5 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_log_entry), __pyx_t_3};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, ((PyObject *)__pyx_v_log_entry), __pyx_t_3};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
- __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 577, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 581, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":566
+ /* "src/lxml/xmlerror.pxi":570
* )
*
* cpdef receive(self, _LogEntry log_entry): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("receive (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_log_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "log_entry", 0))) __PYX_ERR(1, 566, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_log_entry), __pyx_ptype_4lxml_5etree__LogEntry, 1, "log_entry", 0))) __PYX_ERR(1, 570, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_10PyErrorLog_6receive(((struct __pyx_obj_4lxml_5etree_PyErrorLog *)__pyx_v_self), ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_v_log_entry));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("receive", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_10PyErrorLog_receive(__pyx_v_self, __pyx_v_log_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 566, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_10PyErrorLog_receive(__pyx_v_self, __pyx_v_log_entry, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":525
+/* "src/lxml/xmlerror.pxi":529
* with appropriate data.
* """
* cdef readonly dict level_map # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":585
+/* "src/lxml/xmlerror.pxi":589
*
*
* cdef _BaseErrorLog _getThreadErrorLog(name): # <<<<<<<<<<<<<<
PyObject *__pyx_t_9 = NULL;
__Pyx_RefNannySetupContext("_getThreadErrorLog", 0);
- /* "src/lxml/xmlerror.pxi":588
+ /* "src/lxml/xmlerror.pxi":592
* u"""Retrieve the current error log with name 'name' of this thread."""
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict() # <<<<<<<<<<<<<<
*/
__pyx_v_thread_dict = PyThreadState_GetDict();
- /* "src/lxml/xmlerror.pxi":589
+ /* "src/lxml/xmlerror.pxi":593
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_thread_dict == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":590
+ /* "src/lxml/xmlerror.pxi":594
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL:
* return __GLOBAL_ERROR_LOG # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":589
+ /* "src/lxml/xmlerror.pxi":593
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":591
+ /* "src/lxml/xmlerror.pxi":595
* if thread_dict is NULL:
* return __GLOBAL_ERROR_LOG
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_4);
/*try:*/ {
- /* "src/lxml/xmlerror.pxi":592
+ /* "src/lxml/xmlerror.pxi":596
* return __GLOBAL_ERROR_LOG
* try:
* return (<object>thread_dict)[name] # <<<<<<<<<<<<<<
* log = (<object>thread_dict)[name] = \
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 592, __pyx_L4_error)
+ __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 596, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
- if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) __PYX_ERR(1, 592, __pyx_L4_error)
+ if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) __PYX_ERR(1, 596, __pyx_L4_error)
__pyx_r = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_5);
__pyx_t_5 = 0;
goto __pyx_L8_try_return;
- /* "src/lxml/xmlerror.pxi":591
+ /* "src/lxml/xmlerror.pxi":595
* if thread_dict is NULL:
* return __GLOBAL_ERROR_LOG
* try: # <<<<<<<<<<<<<<
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":593
+ /* "src/lxml/xmlerror.pxi":597
* try:
* return (<object>thread_dict)[name]
* except KeyError: # <<<<<<<<<<<<<<
__pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
if (__pyx_t_6) {
__Pyx_AddTraceback("lxml.etree._getThreadErrorLog", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(1, 593, __pyx_L6_except_error)
+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(1, 597, __pyx_L6_except_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_8);
- /* "src/lxml/xmlerror.pxi":595
+ /* "src/lxml/xmlerror.pxi":599
* except KeyError:
* log = (<object>thread_dict)[name] = \
* _RotatingErrorLog(__MAX_LOG_SIZE) # <<<<<<<<<<<<<<
* return log
*
*/
- __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 595, __pyx_L6_except_error)
+ __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 599, __pyx_L6_except_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_9);
__pyx_v_log = ((struct __pyx_obj_4lxml_5etree__RotatingErrorLog *)__pyx_t_9);
- /* "src/lxml/xmlerror.pxi":594
+ /* "src/lxml/xmlerror.pxi":598
* return (<object>thread_dict)[name]
* except KeyError:
* log = (<object>thread_dict)[name] = \ # <<<<<<<<<<<<<<
* _RotatingErrorLog(__MAX_LOG_SIZE)
* return log
*/
- if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name, __pyx_t_9) < 0)) __PYX_ERR(1, 594, __pyx_L6_except_error)
+ if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name, __pyx_t_9) < 0)) __PYX_ERR(1, 598, __pyx_L6_except_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "src/lxml/xmlerror.pxi":596
+ /* "src/lxml/xmlerror.pxi":600
* log = (<object>thread_dict)[name] = \
* _RotatingErrorLog(__MAX_LOG_SIZE)
* return log # <<<<<<<<<<<<<<
goto __pyx_L6_except_error;
__pyx_L6_except_error:;
- /* "src/lxml/xmlerror.pxi":591
+ /* "src/lxml/xmlerror.pxi":595
* if thread_dict is NULL:
* return __GLOBAL_ERROR_LOG
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "src/lxml/xmlerror.pxi":585
+ /* "src/lxml/xmlerror.pxi":589
*
*
* cdef _BaseErrorLog _getThreadErrorLog(name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":599
+/* "src/lxml/xmlerror.pxi":603
*
*
* cdef _setThreadErrorLog(name, _BaseErrorLog log): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("_setThreadErrorLog", 0);
- /* "src/lxml/xmlerror.pxi":602
+ /* "src/lxml/xmlerror.pxi":606
* u"""Set the global error log of this thread."""
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict() # <<<<<<<<<<<<<<
*/
__pyx_v_thread_dict = PyThreadState_GetDict();
- /* "src/lxml/xmlerror.pxi":603
+ /* "src/lxml/xmlerror.pxi":607
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_thread_dict == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":604
+ /* "src/lxml/xmlerror.pxi":608
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL:
* if name == GLOBAL_ERROR_LOG: # <<<<<<<<<<<<<<
* global __GLOBAL_ERROR_LOG
* __GLOBAL_ERROR_LOG = log
*/
- __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_GlobalErrorLog, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 604, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_n_u_GlobalErrorLog, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 608, __pyx_L1_error)
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":606
+ /* "src/lxml/xmlerror.pxi":610
* if name == GLOBAL_ERROR_LOG:
* global __GLOBAL_ERROR_LOG
* __GLOBAL_ERROR_LOG = log # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG, __pyx_v_log);
__Pyx_GIVEREF(((PyObject *)__pyx_v_log));
- /* "src/lxml/xmlerror.pxi":604
+ /* "src/lxml/xmlerror.pxi":608
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL:
* if name == GLOBAL_ERROR_LOG: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":603
+ /* "src/lxml/xmlerror.pxi":607
* cdef python.PyObject* thread_dict
* thread_dict = python.PyThreadState_GetDict()
* if thread_dict is NULL: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/xmlerror.pxi":608
+ /* "src/lxml/xmlerror.pxi":612
* __GLOBAL_ERROR_LOG = log
* else:
* (<object>thread_dict)[name] = log # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name, ((PyObject *)__pyx_v_log)) < 0)) __PYX_ERR(1, 608, __pyx_L1_error)
+ if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_thread_dict), __pyx_v_name, ((PyObject *)__pyx_v_log)) < 0)) __PYX_ERR(1, 612, __pyx_L1_error)
}
__pyx_L3:;
- /* "src/lxml/xmlerror.pxi":599
+ /* "src/lxml/xmlerror.pxi":603
*
*
* cdef _setThreadErrorLog(name, _BaseErrorLog log): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":611
+/* "src/lxml/xmlerror.pxi":615
*
*
* cdef __copyGlobalErrorLog(): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__copyGlobalErrorLog", 0);
- /* "src/lxml/xmlerror.pxi":613
+ /* "src/lxml/xmlerror.pxi":617
* cdef __copyGlobalErrorLog():
* u"Helper function for properties in exceptions."
* return _getThreadErrorLog(GLOBAL_ERROR_LOG).copy() # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 613, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1)->__pyx_vtab)->copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 613, __pyx_L1_error)
+ __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog *)((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1)->__pyx_vtab)->copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":611
+ /* "src/lxml/xmlerror.pxi":615
*
*
* cdef __copyGlobalErrorLog(): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":616
+/* "src/lxml/xmlerror.pxi":620
*
*
* def use_global_python_log(PyErrorLog log not None): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("use_global_python_log (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_log), __pyx_ptype_4lxml_5etree_PyErrorLog, 0, "log", 0))) __PYX_ERR(1, 616, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_log), __pyx_ptype_4lxml_5etree_PyErrorLog, 0, "log", 0))) __PYX_ERR(1, 620, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_4use_global_python_log(__pyx_self, ((struct __pyx_obj_4lxml_5etree_PyErrorLog *)__pyx_v_log));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("use_global_python_log", 0);
- /* "src/lxml/xmlerror.pxi":629
+ /* "src/lxml/xmlerror.pxi":633
* function will only set the global error log of the current thread.
* """
* _setThreadErrorLog(GLOBAL_ERROR_LOG, log) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_GlobalErrorLog, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_log)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 629, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__setThreadErrorLog(__pyx_n_u_GlobalErrorLog, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_log)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 633, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":616
+ /* "src/lxml/xmlerror.pxi":620
*
*
* def use_global_python_log(PyErrorLog log not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "src/lxml/xmlerror.pxi":633
+/* "src/lxml/xmlerror.pxi":637
*
* # local log functions: forward error to logger object
* cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil: # <<<<<<<<<<<<<<
#endif
__Pyx_RefNannySetupContext("_forwardError", 0);
- /* "src/lxml/xmlerror.pxi":635
+ /* "src/lxml/xmlerror.pxi":639
* cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil:
* cdef _BaseErrorLog log_handler
* if c_log_handler is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_log_handler != NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":636
+ /* "src/lxml/xmlerror.pxi":640
* cdef _BaseErrorLog log_handler
* if c_log_handler is not NULL:
* log_handler = <_BaseErrorLog>c_log_handler # <<<<<<<<<<<<<<
__pyx_v_log_handler = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":635
+ /* "src/lxml/xmlerror.pxi":639
* cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil:
* cdef _BaseErrorLog log_handler
* if c_log_handler is not NULL: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/xmlerror.pxi":637
+ /* "src/lxml/xmlerror.pxi":641
* if c_log_handler is not NULL:
* log_handler = <_BaseErrorLog>c_log_handler
* elif error.domain == xmlerror.XML_FROM_XSLT: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_error->domain == XML_FROM_XSLT) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":638
+ /* "src/lxml/xmlerror.pxi":642
* log_handler = <_BaseErrorLog>c_log_handler
* elif error.domain == xmlerror.XML_FROM_XSLT:
* log_handler = _getThreadErrorLog(XSLT_ERROR_LOG) # <<<<<<<<<<<<<<
* else:
* log_handler = _getThreadErrorLog(GLOBAL_ERROR_LOG)
*/
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_XSLTErrorLog)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 638, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_XSLTErrorLog)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_log_handler = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":637
+ /* "src/lxml/xmlerror.pxi":641
* if c_log_handler is not NULL:
* log_handler = <_BaseErrorLog>c_log_handler
* elif error.domain == xmlerror.XML_FROM_XSLT: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "src/lxml/xmlerror.pxi":640
+ /* "src/lxml/xmlerror.pxi":644
* log_handler = _getThreadErrorLog(XSLT_ERROR_LOG)
* else:
* log_handler = _getThreadErrorLog(GLOBAL_ERROR_LOG) # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 640, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getThreadErrorLog(__pyx_n_u_GlobalErrorLog)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_log_handler = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L3:;
- /* "src/lxml/xmlerror.pxi":641
+ /* "src/lxml/xmlerror.pxi":645
* else:
* log_handler = _getThreadErrorLog(GLOBAL_ERROR_LOG)
* log_handler._receive(error) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_13_BaseErrorLog__receive(__pyx_v_log_handler, __pyx_v_error);
- /* "src/lxml/xmlerror.pxi":633
+ /* "src/lxml/xmlerror.pxi":637
*
* # local log functions: forward error to logger object
* cdef void _forwardError(void* c_log_handler, xmlerror.xmlError* error) with gil: # <<<<<<<<<<<<<<
#endif
}
-/* "src/lxml/xmlerror.pxi":644
+/* "src/lxml/xmlerror.pxi":648
*
*
* cdef void _receiveError(void* c_log_handler, xmlerror.xmlError* error) nogil: # <<<<<<<<<<<<<<
static void __pyx_f_4lxml_5etree__receiveError(void *__pyx_v_c_log_handler, xmlError *__pyx_v_error) {
- /* "src/lxml/xmlerror.pxi":647
+ /* "src/lxml/xmlerror.pxi":651
* # no Python objects here, may be called without thread context !
* if __DEBUG:
* _forwardError(c_log_handler, error) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__forwardError(__pyx_v_c_log_handler, __pyx_v_error);
- /* "src/lxml/xmlerror.pxi":644
+ /* "src/lxml/xmlerror.pxi":648
*
*
* cdef void _receiveError(void* c_log_handler, xmlerror.xmlError* error) nogil: # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/xmlerror.pxi":650
+/* "src/lxml/xmlerror.pxi":654
*
*
* cdef void _receiveXSLTError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler, char *__pyx_v_msg, ...) {
va_list __pyx_v_args;
- /* "src/lxml/xmlerror.pxi":653
+ /* "src/lxml/xmlerror.pxi":657
* # no Python objects here, may be called without thread context !
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg) # <<<<<<<<<<<<<<
*/
va_start(__pyx_v_args, __pyx_v_msg);
- /* "src/lxml/xmlerror.pxi":654
+ /* "src/lxml/xmlerror.pxi":658
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_XSLT, msg, args) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__receiveGenericError(__pyx_v_c_log_handler, XML_FROM_XSLT, __pyx_v_msg, __pyx_v_args);
- /* "src/lxml/xmlerror.pxi":655
+ /* "src/lxml/xmlerror.pxi":659
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_XSLT, msg, args)
* cvarargs.va_end(args) # <<<<<<<<<<<<<<
*/
va_end(__pyx_v_args);
- /* "src/lxml/xmlerror.pxi":650
+ /* "src/lxml/xmlerror.pxi":654
*
*
* cdef void _receiveXSLTError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/xmlerror.pxi":657
+/* "src/lxml/xmlerror.pxi":661
* cvarargs.va_end(args)
*
* cdef void _receiveRelaxNGParseError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
static void __pyx_f_4lxml_5etree__receiveRelaxNGParseError(void *__pyx_v_c_log_handler, char *__pyx_v_msg, ...) {
va_list __pyx_v_args;
- /* "src/lxml/xmlerror.pxi":660
+ /* "src/lxml/xmlerror.pxi":664
* # no Python objects here, may be called without thread context !
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg) # <<<<<<<<<<<<<<
*/
va_start(__pyx_v_args, __pyx_v_msg);
- /* "src/lxml/xmlerror.pxi":661
+ /* "src/lxml/xmlerror.pxi":665
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_RELAXNGP, msg, args) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__receiveGenericError(__pyx_v_c_log_handler, XML_FROM_RELAXNGP, __pyx_v_msg, __pyx_v_args);
- /* "src/lxml/xmlerror.pxi":662
+ /* "src/lxml/xmlerror.pxi":666
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_RELAXNGP, msg, args)
* cvarargs.va_end(args) # <<<<<<<<<<<<<<
*/
va_end(__pyx_v_args);
- /* "src/lxml/xmlerror.pxi":657
+ /* "src/lxml/xmlerror.pxi":661
* cvarargs.va_end(args)
*
* cdef void _receiveRelaxNGParseError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/xmlerror.pxi":664
+/* "src/lxml/xmlerror.pxi":668
* cvarargs.va_end(args)
*
* cdef void _receiveRelaxNGValidationError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
static void __pyx_f_4lxml_5etree__receiveRelaxNGValidationError(void *__pyx_v_c_log_handler, char *__pyx_v_msg, ...) {
va_list __pyx_v_args;
- /* "src/lxml/xmlerror.pxi":667
+ /* "src/lxml/xmlerror.pxi":671
* # no Python objects here, may be called without thread context !
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg) # <<<<<<<<<<<<<<
*/
va_start(__pyx_v_args, __pyx_v_msg);
- /* "src/lxml/xmlerror.pxi":668
+ /* "src/lxml/xmlerror.pxi":672
* cdef cvarargs.va_list args
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_RELAXNGV, msg, args) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__receiveGenericError(__pyx_v_c_log_handler, XML_FROM_RELAXNGV, __pyx_v_msg, __pyx_v_args);
- /* "src/lxml/xmlerror.pxi":669
+ /* "src/lxml/xmlerror.pxi":673
* cvarargs.va_start(args, msg)
* _receiveGenericError(c_log_handler, xmlerror.XML_FROM_RELAXNGV, msg, args)
* cvarargs.va_end(args) # <<<<<<<<<<<<<<
*/
va_end(__pyx_v_args);
- /* "src/lxml/xmlerror.pxi":664
+ /* "src/lxml/xmlerror.pxi":668
* cvarargs.va_end(args)
*
* cdef void _receiveRelaxNGValidationError(void* c_log_handler, char* msg, ...) nogil: # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/xmlerror.pxi":672
+/* "src/lxml/xmlerror.pxi":676
*
* # dummy function: no log output at all
* cdef void _nullGenericErrorFunc(void* ctxt, char* msg, ...) nogil: # <<<<<<<<<<<<<<
/* function exit code */
}
-/* "src/lxml/xmlerror.pxi":676
+/* "src/lxml/xmlerror.pxi":680
*
*
* cdef void _connectGenericErrorLog(log, int c_domain=-1): # <<<<<<<<<<<<<<
}
}
- /* "src/lxml/xmlerror.pxi":677
+ /* "src/lxml/xmlerror.pxi":681
*
* cdef void _connectGenericErrorLog(log, int c_domain=-1):
* cdef xmlerror.xmlGenericErrorFunc error_func = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_error_func = NULL;
- /* "src/lxml/xmlerror.pxi":678
+ /* "src/lxml/xmlerror.pxi":682
* cdef void _connectGenericErrorLog(log, int c_domain=-1):
* cdef xmlerror.xmlGenericErrorFunc error_func = NULL
* c_log = <void*>log # <<<<<<<<<<<<<<
*/
__pyx_v_c_log = ((void *)__pyx_v_log);
- /* "src/lxml/xmlerror.pxi":679
+ /* "src/lxml/xmlerror.pxi":683
* cdef xmlerror.xmlGenericErrorFunc error_func = NULL
* c_log = <void*>log
* if c_domain == xmlerror.XML_FROM_XSLT: # <<<<<<<<<<<<<<
switch (__pyx_v_c_domain) {
case XML_FROM_XSLT:
- /* "src/lxml/xmlerror.pxi":680
+ /* "src/lxml/xmlerror.pxi":684
* c_log = <void*>log
* if c_domain == xmlerror.XML_FROM_XSLT:
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveXSLTError # <<<<<<<<<<<<<<
*/
__pyx_v_error_func = ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__receiveXSLTError);
- /* "src/lxml/xmlerror.pxi":679
+ /* "src/lxml/xmlerror.pxi":683
* cdef xmlerror.xmlGenericErrorFunc error_func = NULL
* c_log = <void*>log
* if c_domain == xmlerror.XML_FROM_XSLT: # <<<<<<<<<<<<<<
break;
case XML_FROM_RELAXNGP:
- /* "src/lxml/xmlerror.pxi":682
+ /* "src/lxml/xmlerror.pxi":686
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveXSLTError
* elif c_domain == xmlerror.XML_FROM_RELAXNGP:
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGParseError # <<<<<<<<<<<<<<
*/
__pyx_v_error_func = ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__receiveRelaxNGParseError);
- /* "src/lxml/xmlerror.pxi":681
+ /* "src/lxml/xmlerror.pxi":685
* if c_domain == xmlerror.XML_FROM_XSLT:
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveXSLTError
* elif c_domain == xmlerror.XML_FROM_RELAXNGP: # <<<<<<<<<<<<<<
break;
case XML_FROM_RELAXNGV:
- /* "src/lxml/xmlerror.pxi":684
+ /* "src/lxml/xmlerror.pxi":688
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGParseError
* elif c_domain == xmlerror.XML_FROM_RELAXNGV:
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGValidationError # <<<<<<<<<<<<<<
*/
__pyx_v_error_func = ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__receiveRelaxNGValidationError);
- /* "src/lxml/xmlerror.pxi":683
+ /* "src/lxml/xmlerror.pxi":687
* elif c_domain == xmlerror.XML_FROM_RELAXNGP:
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGParseError
* elif c_domain == xmlerror.XML_FROM_RELAXNGV: # <<<<<<<<<<<<<<
default: break;
}
- /* "src/lxml/xmlerror.pxi":686
+ /* "src/lxml/xmlerror.pxi":690
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGValidationError
*
* if log is None or error_func is NULL: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":687
+ /* "src/lxml/xmlerror.pxi":691
*
* if log is None or error_func is NULL:
* c_log = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_c_log = NULL;
- /* "src/lxml/xmlerror.pxi":688
+ /* "src/lxml/xmlerror.pxi":692
* if log is None or error_func is NULL:
* c_log = NULL
* error_func = <xmlerror.xmlGenericErrorFunc>_nullGenericErrorFunc # <<<<<<<<<<<<<<
*/
__pyx_v_error_func = ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__nullGenericErrorFunc);
- /* "src/lxml/xmlerror.pxi":686
+ /* "src/lxml/xmlerror.pxi":690
* error_func = <xmlerror.xmlGenericErrorFunc>_receiveRelaxNGValidationError
*
* if log is None or error_func is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":689
+ /* "src/lxml/xmlerror.pxi":693
* c_log = NULL
* error_func = <xmlerror.xmlGenericErrorFunc>_nullGenericErrorFunc
* xmlerror.xmlSetGenericErrorFunc(c_log, error_func) # <<<<<<<<<<<<<<
*/
xmlSetGenericErrorFunc(__pyx_v_c_log, __pyx_v_error_func);
- /* "src/lxml/xmlerror.pxi":676
+ /* "src/lxml/xmlerror.pxi":680
*
*
* cdef void _connectGenericErrorLog(log, int c_domain=-1): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/xmlerror.pxi":692
+/* "src/lxml/xmlerror.pxi":696
*
*
* cdef void _receiveGenericError(void* c_log_handler, int c_domain, # <<<<<<<<<<<<<<
int __pyx_t_1;
int __pyx_t_2;
- /* "src/lxml/xmlerror.pxi":703
+ /* "src/lxml/xmlerror.pxi":707
* cdef char* c_str
* cdef int text_size, element_size, format_count, c_int
* if not __DEBUG or msg is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_msg == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":704
+ /* "src/lxml/xmlerror.pxi":708
* cdef int text_size, element_size, format_count, c_int
* if not __DEBUG or msg is NULL:
* return # <<<<<<<<<<<<<<
*/
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":703
+ /* "src/lxml/xmlerror.pxi":707
* cdef char* c_str
* cdef int text_size, element_size, format_count, c_int
* if not __DEBUG or msg is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":705
+ /* "src/lxml/xmlerror.pxi":709
* if not __DEBUG or msg is NULL:
* return
* if msg[0] in b'\n\0': # <<<<<<<<<<<<<<
case '\x00':
case '\n':
- /* "src/lxml/xmlerror.pxi":706
+ /* "src/lxml/xmlerror.pxi":710
* return
* if msg[0] in b'\n\0':
* return # <<<<<<<<<<<<<<
*/
goto __pyx_L0;
- /* "src/lxml/xmlerror.pxi":705
+ /* "src/lxml/xmlerror.pxi":709
* if not __DEBUG or msg is NULL:
* return
* if msg[0] in b'\n\0': # <<<<<<<<<<<<<<
default: break;
}
- /* "src/lxml/xmlerror.pxi":708
+ /* "src/lxml/xmlerror.pxi":712
* return
*
* c_text = c_element = c_error.file = c_error.node = NULL # <<<<<<<<<<<<<<
__pyx_v_c_error.file = NULL;
__pyx_v_c_error.node = NULL;
- /* "src/lxml/xmlerror.pxi":709
+ /* "src/lxml/xmlerror.pxi":713
*
* c_text = c_element = c_error.file = c_error.node = NULL
* c_error.line = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.line = 0;
- /* "src/lxml/xmlerror.pxi":712
+ /* "src/lxml/xmlerror.pxi":716
*
* # parse "NAME %s" chunks from the format string
* c_name_pos = c_pos = msg # <<<<<<<<<<<<<<
__pyx_v_c_name_pos = __pyx_v_msg;
__pyx_v_c_pos = __pyx_v_msg;
- /* "src/lxml/xmlerror.pxi":713
+ /* "src/lxml/xmlerror.pxi":717
* # parse "NAME %s" chunks from the format string
* c_name_pos = c_pos = msg
* format_count = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_format_count = 0;
- /* "src/lxml/xmlerror.pxi":714
+ /* "src/lxml/xmlerror.pxi":718
* c_name_pos = c_pos = msg
* format_count = 0
* while c_pos[0]: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_pos[0]) != 0);
if (!__pyx_t_1) break;
- /* "src/lxml/xmlerror.pxi":715
+ /* "src/lxml/xmlerror.pxi":719
* format_count = 0
* while c_pos[0]:
* if c_pos[0] == b'%': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[0]) == '%') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":716
+ /* "src/lxml/xmlerror.pxi":720
* while c_pos[0]:
* if c_pos[0] == b'%':
* c_pos += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_pos = (__pyx_v_c_pos + 1);
- /* "src/lxml/xmlerror.pxi":717
+ /* "src/lxml/xmlerror.pxi":721
* if c_pos[0] == b'%':
* c_pos += 1
* if c_pos[0] == b's': # "%s" # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[0]) == 's') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":718
+ /* "src/lxml/xmlerror.pxi":722
* c_pos += 1
* if c_pos[0] == b's': # "%s"
* format_count += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_format_count = (__pyx_v_format_count + 1);
- /* "src/lxml/xmlerror.pxi":719
+ /* "src/lxml/xmlerror.pxi":723
* if c_pos[0] == b's': # "%s"
* format_count += 1
* c_str = cvarargs.va_charptr(args) # <<<<<<<<<<<<<<
*/
__pyx_v_c_str = va_charptr(__pyx_v_args);
- /* "src/lxml/xmlerror.pxi":720
+ /* "src/lxml/xmlerror.pxi":724
* format_count += 1
* c_str = cvarargs.va_charptr(args)
* if c_pos == msg + 1: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_pos == (__pyx_v_msg + 1)) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":721
+ /* "src/lxml/xmlerror.pxi":725
* c_str = cvarargs.va_charptr(args)
* if c_pos == msg + 1:
* c_text = c_str # msg == "%s..." # <<<<<<<<<<<<<<
*/
__pyx_v_c_text = __pyx_v_c_str;
- /* "src/lxml/xmlerror.pxi":720
+ /* "src/lxml/xmlerror.pxi":724
* format_count += 1
* c_str = cvarargs.va_charptr(args)
* if c_pos == msg + 1: # <<<<<<<<<<<<<<
goto __pyx_L8;
}
- /* "src/lxml/xmlerror.pxi":722
+ /* "src/lxml/xmlerror.pxi":726
* if c_pos == msg + 1:
* c_text = c_str # msg == "%s..."
* elif c_name_pos[0] == b'e': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name_pos[0]) == 'e') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":723
+ /* "src/lxml/xmlerror.pxi":727
* c_text = c_str # msg == "%s..."
* elif c_name_pos[0] == b'e':
* if cstring_h.strncmp(c_name_pos, 'element %s', 10) == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((strncmp(__pyx_v_c_name_pos, ((char const *)"element %s"), 10) == 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":724
+ /* "src/lxml/xmlerror.pxi":728
* elif c_name_pos[0] == b'e':
* if cstring_h.strncmp(c_name_pos, 'element %s', 10) == 0:
* c_element = c_str # <<<<<<<<<<<<<<
*/
__pyx_v_c_element = __pyx_v_c_str;
- /* "src/lxml/xmlerror.pxi":723
+ /* "src/lxml/xmlerror.pxi":727
* c_text = c_str # msg == "%s..."
* elif c_name_pos[0] == b'e':
* if cstring_h.strncmp(c_name_pos, 'element %s', 10) == 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":722
+ /* "src/lxml/xmlerror.pxi":726
* if c_pos == msg + 1:
* c_text = c_str # msg == "%s..."
* elif c_name_pos[0] == b'e': # <<<<<<<<<<<<<<
goto __pyx_L8;
}
- /* "src/lxml/xmlerror.pxi":725
+ /* "src/lxml/xmlerror.pxi":729
* if cstring_h.strncmp(c_name_pos, 'element %s', 10) == 0:
* c_element = c_str
* elif c_name_pos[0] == b'f': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_name_pos[0]) == 'f') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":726
+ /* "src/lxml/xmlerror.pxi":730
* c_element = c_str
* elif c_name_pos[0] == b'f':
* if cstring_h.strncmp(c_name_pos, 'file %s', 7) == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((strncmp(__pyx_v_c_name_pos, ((char const *)"file %s"), 7) == 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":728
+ /* "src/lxml/xmlerror.pxi":732
* if cstring_h.strncmp(c_name_pos, 'file %s', 7) == 0:
* if cstring_h.strncmp('string://__STRING__XSLT',
* c_str, 23) == 0: # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((strncmp(((char const *)"string://__STRING__XSLT"), __pyx_v_c_str, 23) == 0) != 0);
- /* "src/lxml/xmlerror.pxi":727
+ /* "src/lxml/xmlerror.pxi":731
* elif c_name_pos[0] == b'f':
* if cstring_h.strncmp(c_name_pos, 'file %s', 7) == 0:
* if cstring_h.strncmp('string://__STRING__XSLT', # <<<<<<<<<<<<<<
*/
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":729
+ /* "src/lxml/xmlerror.pxi":733
* if cstring_h.strncmp('string://__STRING__XSLT',
* c_str, 23) == 0:
* c_str = '<xslt>' # <<<<<<<<<<<<<<
*/
__pyx_v_c_str = ((char *)"<xslt>");
- /* "src/lxml/xmlerror.pxi":727
+ /* "src/lxml/xmlerror.pxi":731
* elif c_name_pos[0] == b'f':
* if cstring_h.strncmp(c_name_pos, 'file %s', 7) == 0:
* if cstring_h.strncmp('string://__STRING__XSLT', # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":730
+ /* "src/lxml/xmlerror.pxi":734
* c_str, 23) == 0:
* c_str = '<xslt>'
* c_error.file = c_str # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.file = __pyx_v_c_str;
- /* "src/lxml/xmlerror.pxi":726
+ /* "src/lxml/xmlerror.pxi":730
* c_element = c_str
* elif c_name_pos[0] == b'f':
* if cstring_h.strncmp(c_name_pos, 'file %s', 7) == 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":725
+ /* "src/lxml/xmlerror.pxi":729
* if cstring_h.strncmp(c_name_pos, 'element %s', 10) == 0:
* c_element = c_str
* elif c_name_pos[0] == b'f': # <<<<<<<<<<<<<<
}
__pyx_L8:;
- /* "src/lxml/xmlerror.pxi":717
+ /* "src/lxml/xmlerror.pxi":721
* if c_pos[0] == b'%':
* c_pos += 1
* if c_pos[0] == b's': # "%s" # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "src/lxml/xmlerror.pxi":731
+ /* "src/lxml/xmlerror.pxi":735
* c_str = '<xslt>'
* c_error.file = c_str
* elif c_pos[0] == b'd': # "%d" # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[0]) == 'd') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":732
+ /* "src/lxml/xmlerror.pxi":736
* c_error.file = c_str
* elif c_pos[0] == b'd': # "%d"
* format_count += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_format_count = (__pyx_v_format_count + 1);
- /* "src/lxml/xmlerror.pxi":733
+ /* "src/lxml/xmlerror.pxi":737
* elif c_pos[0] == b'd': # "%d"
* format_count += 1
* c_int = cvarargs.va_int(args) # <<<<<<<<<<<<<<
*/
__pyx_v_c_int = va_int(__pyx_v_args);
- /* "src/lxml/xmlerror.pxi":734
+ /* "src/lxml/xmlerror.pxi":738
* format_count += 1
* c_int = cvarargs.va_int(args)
* if cstring_h.strncmp(c_name_pos, 'line %d', 7) == 0: # <<<<<<<<<<<<<<
__pyx_t_1 = ((strncmp(__pyx_v_c_name_pos, ((char const *)"line %d"), 7) == 0) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":735
+ /* "src/lxml/xmlerror.pxi":739
* c_int = cvarargs.va_int(args)
* if cstring_h.strncmp(c_name_pos, 'line %d', 7) == 0:
* c_error.line = c_int # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.line = __pyx_v_c_int;
- /* "src/lxml/xmlerror.pxi":734
+ /* "src/lxml/xmlerror.pxi":738
* format_count += 1
* c_int = cvarargs.va_int(args)
* if cstring_h.strncmp(c_name_pos, 'line %d', 7) == 0: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":731
+ /* "src/lxml/xmlerror.pxi":735
* c_str = '<xslt>'
* c_error.file = c_str
* elif c_pos[0] == b'd': # "%d" # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "src/lxml/xmlerror.pxi":736
+ /* "src/lxml/xmlerror.pxi":740
* if cstring_h.strncmp(c_name_pos, 'line %d', 7) == 0:
* c_error.line = c_int
* elif c_pos[0] != b'%': # "%%" == "%" # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[0]) != '%') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":737
+ /* "src/lxml/xmlerror.pxi":741
* c_error.line = c_int
* elif c_pos[0] != b'%': # "%%" == "%"
* format_count += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_format_count = (__pyx_v_format_count + 1);
- /* "src/lxml/xmlerror.pxi":738
+ /* "src/lxml/xmlerror.pxi":742
* elif c_pos[0] != b'%': # "%%" == "%"
* format_count += 1
* break # unexpected format or end of string => abort # <<<<<<<<<<<<<<
*/
goto __pyx_L5_break;
- /* "src/lxml/xmlerror.pxi":736
+ /* "src/lxml/xmlerror.pxi":740
* if cstring_h.strncmp(c_name_pos, 'line %d', 7) == 0:
* c_error.line = c_int
* elif c_pos[0] != b'%': # "%%" == "%" # <<<<<<<<<<<<<<
}
__pyx_L7:;
- /* "src/lxml/xmlerror.pxi":715
+ /* "src/lxml/xmlerror.pxi":719
* format_count = 0
* while c_pos[0]:
* if c_pos[0] == b'%': # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "src/lxml/xmlerror.pxi":739
+ /* "src/lxml/xmlerror.pxi":743
* format_count += 1
* break # unexpected format or end of string => abort
* elif c_pos[0] == b' ': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[0]) == ' ') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":740
+ /* "src/lxml/xmlerror.pxi":744
* break # unexpected format or end of string => abort
* elif c_pos[0] == b' ':
* if c_pos[1] != b'%': # <<<<<<<<<<<<<<
__pyx_t_1 = (((__pyx_v_c_pos[1]) != '%') != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":741
+ /* "src/lxml/xmlerror.pxi":745
* elif c_pos[0] == b' ':
* if c_pos[1] != b'%':
* c_name_pos = c_pos + 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c_name_pos = (__pyx_v_c_pos + 1);
- /* "src/lxml/xmlerror.pxi":740
+ /* "src/lxml/xmlerror.pxi":744
* break # unexpected format or end of string => abort
* elif c_pos[0] == b' ':
* if c_pos[1] != b'%': # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":739
+ /* "src/lxml/xmlerror.pxi":743
* format_count += 1
* break # unexpected format or end of string => abort
* elif c_pos[0] == b' ': # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "src/lxml/xmlerror.pxi":742
+ /* "src/lxml/xmlerror.pxi":746
* if c_pos[1] != b'%':
* c_name_pos = c_pos + 1
* c_pos += 1 # <<<<<<<<<<<<<<
}
__pyx_L5_break:;
- /* "src/lxml/xmlerror.pxi":744
+ /* "src/lxml/xmlerror.pxi":748
* c_pos += 1
*
* c_message = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_c_message = NULL;
- /* "src/lxml/xmlerror.pxi":745
+ /* "src/lxml/xmlerror.pxi":749
*
* c_message = NULL
* if c_text is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_text == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":746
+ /* "src/lxml/xmlerror.pxi":750
* c_message = NULL
* if c_text is NULL:
* if c_element is not NULL and format_count == 1: # <<<<<<<<<<<<<<
__pyx_L16_bool_binop_done:;
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":748
+ /* "src/lxml/xmlerror.pxi":752
* if c_element is not NULL and format_count == 1:
* # special case: a single occurrence of 'element %s'
* text_size = cstring_h.strlen(msg) # <<<<<<<<<<<<<<
*/
__pyx_v_text_size = strlen(__pyx_v_msg);
- /* "src/lxml/xmlerror.pxi":749
+ /* "src/lxml/xmlerror.pxi":753
* # special case: a single occurrence of 'element %s'
* text_size = cstring_h.strlen(msg)
* element_size = cstring_h.strlen(c_element) # <<<<<<<<<<<<<<
*/
__pyx_v_element_size = strlen(__pyx_v_c_element);
- /* "src/lxml/xmlerror.pxi":750
+ /* "src/lxml/xmlerror.pxi":754
* text_size = cstring_h.strlen(msg)
* element_size = cstring_h.strlen(c_element)
* c_message = <char*>stdlib.malloc( # <<<<<<<<<<<<<<
*/
__pyx_v_c_message = ((char *)malloc((((__pyx_v_text_size + __pyx_v_element_size) + 1) * (sizeof(char)))));
- /* "src/lxml/xmlerror.pxi":752
+ /* "src/lxml/xmlerror.pxi":756
* c_message = <char*>stdlib.malloc(
* (text_size + element_size + 1) * sizeof(char))
* stdio.sprintf(c_message, msg, c_element) # <<<<<<<<<<<<<<
*/
(void)(sprintf(__pyx_v_c_message, __pyx_v_msg, __pyx_v_c_element));
- /* "src/lxml/xmlerror.pxi":753
+ /* "src/lxml/xmlerror.pxi":757
* (text_size + element_size + 1) * sizeof(char))
* stdio.sprintf(c_message, msg, c_element)
* c_error.message = c_message # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.message = __pyx_v_c_message;
- /* "src/lxml/xmlerror.pxi":746
+ /* "src/lxml/xmlerror.pxi":750
* c_message = NULL
* if c_text is NULL:
* if c_element is not NULL and format_count == 1: # <<<<<<<<<<<<<<
goto __pyx_L15;
}
- /* "src/lxml/xmlerror.pxi":755
+ /* "src/lxml/xmlerror.pxi":759
* c_error.message = c_message
* else:
* c_error.message = '' # <<<<<<<<<<<<<<
}
__pyx_L15:;
- /* "src/lxml/xmlerror.pxi":745
+ /* "src/lxml/xmlerror.pxi":749
*
* c_message = NULL
* if c_text is NULL: # <<<<<<<<<<<<<<
goto __pyx_L14;
}
- /* "src/lxml/xmlerror.pxi":756
+ /* "src/lxml/xmlerror.pxi":760
* else:
* c_error.message = ''
* elif c_element is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_element == NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":757
+ /* "src/lxml/xmlerror.pxi":761
* c_error.message = ''
* elif c_element is NULL:
* c_error.message = c_text # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.message = __pyx_v_c_text;
- /* "src/lxml/xmlerror.pxi":756
+ /* "src/lxml/xmlerror.pxi":760
* else:
* c_error.message = ''
* elif c_element is NULL: # <<<<<<<<<<<<<<
goto __pyx_L14;
}
- /* "src/lxml/xmlerror.pxi":759
+ /* "src/lxml/xmlerror.pxi":763
* c_error.message = c_text
* else:
* text_size = cstring_h.strlen(c_text) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_text_size = strlen(__pyx_v_c_text);
- /* "src/lxml/xmlerror.pxi":760
+ /* "src/lxml/xmlerror.pxi":764
* else:
* text_size = cstring_h.strlen(c_text)
* element_size = cstring_h.strlen(c_element) # <<<<<<<<<<<<<<
*/
__pyx_v_element_size = strlen(__pyx_v_c_element);
- /* "src/lxml/xmlerror.pxi":761
+ /* "src/lxml/xmlerror.pxi":765
* text_size = cstring_h.strlen(c_text)
* element_size = cstring_h.strlen(c_element)
* c_message = <char*>stdlib.malloc( # <<<<<<<<<<<<<<
*/
__pyx_v_c_message = ((char *)malloc(((((__pyx_v_text_size + 12) + __pyx_v_element_size) + 1) * (sizeof(char)))));
- /* "src/lxml/xmlerror.pxi":763
+ /* "src/lxml/xmlerror.pxi":767
* c_message = <char*>stdlib.malloc(
* (text_size + 12 + element_size + 1) * sizeof(char))
* stdio.sprintf(c_message, "%s, element '%s'", c_text, c_element) # <<<<<<<<<<<<<<
*/
(void)(sprintf(__pyx_v_c_message, ((char const *)"%s, element '%s'"), __pyx_v_c_text, __pyx_v_c_element));
- /* "src/lxml/xmlerror.pxi":764
+ /* "src/lxml/xmlerror.pxi":768
* (text_size + 12 + element_size + 1) * sizeof(char))
* stdio.sprintf(c_message, "%s, element '%s'", c_text, c_element)
* c_error.message = c_message # <<<<<<<<<<<<<<
}
__pyx_L14:;
- /* "src/lxml/xmlerror.pxi":766
+ /* "src/lxml/xmlerror.pxi":770
* c_error.message = c_message
*
* c_error.domain = c_domain # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.domain = __pyx_v_c_domain;
- /* "src/lxml/xmlerror.pxi":767
+ /* "src/lxml/xmlerror.pxi":771
*
* c_error.domain = c_domain
* c_error.code = xmlerror.XML_ERR_OK # what else? # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.code = XML_ERR_OK;
- /* "src/lxml/xmlerror.pxi":768
+ /* "src/lxml/xmlerror.pxi":772
* c_error.domain = c_domain
* c_error.code = xmlerror.XML_ERR_OK # what else?
* c_error.level = xmlerror.XML_ERR_ERROR # what else? # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.level = XML_ERR_ERROR;
- /* "src/lxml/xmlerror.pxi":769
+ /* "src/lxml/xmlerror.pxi":773
* c_error.code = xmlerror.XML_ERR_OK # what else?
* c_error.level = xmlerror.XML_ERR_ERROR # what else?
* c_error.int2 = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_c_error.int2 = 0;
- /* "src/lxml/xmlerror.pxi":771
+ /* "src/lxml/xmlerror.pxi":775
* c_error.int2 = 0
*
* _forwardError(c_log_handler, &c_error) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__forwardError(__pyx_v_c_log_handler, (&__pyx_v_c_error));
- /* "src/lxml/xmlerror.pxi":773
+ /* "src/lxml/xmlerror.pxi":777
* _forwardError(c_log_handler, &c_error)
*
* if c_message is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_message != NULL) != 0);
if (__pyx_t_1) {
- /* "src/lxml/xmlerror.pxi":774
+ /* "src/lxml/xmlerror.pxi":778
*
* if c_message is not NULL:
* stdlib.free(c_message) # <<<<<<<<<<<<<<
*/
free(__pyx_v_c_message);
- /* "src/lxml/xmlerror.pxi":773
+ /* "src/lxml/xmlerror.pxi":777
* _forwardError(c_log_handler, &c_error)
*
* if c_message is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":692
+ /* "src/lxml/xmlerror.pxi":696
*
*
* cdef void _receiveGenericError(void* c_log_handler, int c_domain, # <<<<<<<<<<<<<<
__pyx_L0:;
}
-/* "src/lxml/xmlerror.pxi":780
+/* "src/lxml/xmlerror.pxi":784
* ################################################################################
*
* cdef __initErrorConstants(): # <<<<<<<<<<<<<<
int __pyx_t_13;
__Pyx_RefNannySetupContext("__initErrorConstants", 0);
- /* "src/lxml/xmlerror.pxi":783
+ /* "src/lxml/xmlerror.pxi":787
* "Called at setup time to parse the constants and build the classes below."
* global __ERROR_LEVELS, __ERROR_DOMAINS, __PARSER_ERROR_TYPES, __RELAXNG_ERROR_TYPES
* const_defs = ((ErrorLevels, __ERROR_LEVELS), # <<<<<<<<<<<<<<
* (ErrorDomains, __ERROR_DOMAINS),
* (ErrorTypes, __PARSER_ERROR_TYPES),
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 783, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorLevels); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 787, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 783, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 787, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_4lxml_5etree___ERROR_LEVELS);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":784
+ /* "src/lxml/xmlerror.pxi":788
* global __ERROR_LEVELS, __ERROR_DOMAINS, __PARSER_ERROR_TYPES, __RELAXNG_ERROR_TYPES
* const_defs = ((ErrorLevels, __ERROR_LEVELS),
* (ErrorDomains, __ERROR_DOMAINS), # <<<<<<<<<<<<<<
* (ErrorTypes, __PARSER_ERROR_TYPES),
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorDomains); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 784, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorDomains); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 788, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 784, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 788, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_4lxml_5etree___ERROR_DOMAINS);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":785
+ /* "src/lxml/xmlerror.pxi":789
* const_defs = ((ErrorLevels, __ERROR_LEVELS),
* (ErrorDomains, __ERROR_DOMAINS),
* (ErrorTypes, __PARSER_ERROR_TYPES), # <<<<<<<<<<<<<<
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorTypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 785, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ErrorTypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 785, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":786
+ /* "src/lxml/xmlerror.pxi":790
* (ErrorDomains, __ERROR_DOMAINS),
* (ErrorTypes, __PARSER_ERROR_TYPES),
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES)) # <<<<<<<<<<<<<<
*
* for cls, constants in const_defs:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RelaxNGErrorTypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 786, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RelaxNGErrorTypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 786, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 790, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":783
+ /* "src/lxml/xmlerror.pxi":787
* "Called at setup time to parse the constants and build the classes below."
* global __ERROR_LEVELS, __ERROR_DOMAINS, __PARSER_ERROR_TYPES, __RELAXNG_ERROR_TYPES
* const_defs = ((ErrorLevels, __ERROR_LEVELS), # <<<<<<<<<<<<<<
* (ErrorDomains, __ERROR_DOMAINS),
* (ErrorTypes, __PARSER_ERROR_TYPES),
*/
- __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 783, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 787, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__pyx_v_const_defs = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":788
+ /* "src/lxml/xmlerror.pxi":792
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
*
* for cls, constants in const_defs: # <<<<<<<<<<<<<<
for (;;) {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 788, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 792, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 788, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if (likely(__pyx_t_5 != Py_None)) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(1, 788, __pyx_L1_error)
+ __PYX_ERR(1, 792, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 788, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 788, __pyx_L1_error)
+ __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 788, __pyx_L1_error)
+ __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 792, __pyx_L1_error)
}
__Pyx_XDECREF_SET(__pyx_v_cls, __pyx_t_4);
__pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_constants, __pyx_t_3);
__pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":789
+ /* "src/lxml/xmlerror.pxi":793
*
* for cls, constants in const_defs:
* reverse_dict = {} # <<<<<<<<<<<<<<
* cls._names = reverse_dict
* cls._getName = reverse_dict.get
*/
- __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 789, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 793, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_reverse_dict, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":790
+ /* "src/lxml/xmlerror.pxi":794
* for cls, constants in const_defs:
* reverse_dict = {}
* cls._names = reverse_dict # <<<<<<<<<<<<<<
* cls._getName = reverse_dict.get
* for line in constants.splitlines():
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_names, __pyx_v_reverse_dict) < 0) __PYX_ERR(1, 790, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_names, __pyx_v_reverse_dict) < 0) __PYX_ERR(1, 794, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":791
+ /* "src/lxml/xmlerror.pxi":795
* reverse_dict = {}
* cls._names = reverse_dict
* cls._getName = reverse_dict.get # <<<<<<<<<<<<<<
* for line in constants.splitlines():
* if not line:
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reverse_dict, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 791, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reverse_dict, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 795, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_getName, __pyx_t_5) < 0) __PYX_ERR(1, 791, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_cls, __pyx_n_s_getName, __pyx_t_5) < 0) __PYX_ERR(1, 795, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":792
+ /* "src/lxml/xmlerror.pxi":796
* cls._names = reverse_dict
* cls._getName = reverse_dict.get
* for line in constants.splitlines(): # <<<<<<<<<<<<<<
* if not line:
* continue
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_constants, __pyx_n_s_splitlines); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_constants, __pyx_n_s_splitlines); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 792, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
- __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 796, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 796, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 796, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 792, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 796, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(1, 792, __pyx_L1_error)
+ else __PYX_ERR(1, 796, __pyx_L1_error)
}
break;
}
__Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_5);
__pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":793
+ /* "src/lxml/xmlerror.pxi":797
* cls._getName = reverse_dict.get
* for line in constants.splitlines():
* if not line: # <<<<<<<<<<<<<<
* continue
* name, value = line.split('=')
*/
- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_line); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 793, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_line); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 797, __pyx_L1_error)
__pyx_t_10 = ((!__pyx_t_9) != 0);
if (__pyx_t_10) {
- /* "src/lxml/xmlerror.pxi":794
+ /* "src/lxml/xmlerror.pxi":798
* for line in constants.splitlines():
* if not line:
* continue # <<<<<<<<<<<<<<
*/
goto __pyx_L5_continue;
- /* "src/lxml/xmlerror.pxi":793
+ /* "src/lxml/xmlerror.pxi":797
* cls._getName = reverse_dict.get
* for line in constants.splitlines():
* if not line: # <<<<<<<<<<<<<<
*/
}
- /* "src/lxml/xmlerror.pxi":795
+ /* "src/lxml/xmlerror.pxi":799
* if not line:
* continue
* name, value = line.split('=') # <<<<<<<<<<<<<<
* value = int(value)
* setattr(cls, name, value)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_line, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 795, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_line, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
}
__pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_kp_s__20) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s__20);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 795, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(1, 795, __pyx_L1_error)
+ __PYX_ERR(1, 799, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_2);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 795, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 795, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 795, __pyx_L1_error)
+ __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 799, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_2 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed;
__Pyx_GOTREF(__pyx_t_2);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(1, 795, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(1, 799, __pyx_L1_error)
__pyx_t_12 = NULL;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L9_unpacking_done;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_12 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(1, 795, __pyx_L1_error)
+ __PYX_ERR(1, 799, __pyx_L1_error)
__pyx_L9_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_2);
__pyx_t_2 = 0;
- /* "src/lxml/xmlerror.pxi":796
+ /* "src/lxml/xmlerror.pxi":800
* continue
* name, value = line.split('=')
* value = int(value) # <<<<<<<<<<<<<<
* setattr(cls, name, value)
* reverse_dict[value] = name
*/
- __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 796, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 800, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_5);
__pyx_t_5 = 0;
- /* "src/lxml/xmlerror.pxi":797
+ /* "src/lxml/xmlerror.pxi":801
* name, value = line.split('=')
* value = int(value)
* setattr(cls, name, value) # <<<<<<<<<<<<<<
* reverse_dict[value] = name
*
*/
- __pyx_t_13 = PyObject_SetAttr(__pyx_v_cls, __pyx_v_name, __pyx_v_value); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(1, 797, __pyx_L1_error)
+ __pyx_t_13 = PyObject_SetAttr(__pyx_v_cls, __pyx_v_name, __pyx_v_value); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(1, 801, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":798
+ /* "src/lxml/xmlerror.pxi":802
* value = int(value)
* setattr(cls, name, value)
* reverse_dict[value] = name # <<<<<<<<<<<<<<
*
* # discard the global tuple references after use
*/
- if (unlikely(PyDict_SetItem(__pyx_v_reverse_dict, __pyx_v_value, __pyx_v_name) < 0)) __PYX_ERR(1, 798, __pyx_L1_error)
+ if (unlikely(PyDict_SetItem(__pyx_v_reverse_dict, __pyx_v_value, __pyx_v_name) < 0)) __PYX_ERR(1, 802, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":792
+ /* "src/lxml/xmlerror.pxi":796
* cls._names = reverse_dict
* cls._getName = reverse_dict.get
* for line in constants.splitlines(): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "src/lxml/xmlerror.pxi":788
+ /* "src/lxml/xmlerror.pxi":792
* (RelaxNGErrorTypes, __RELAXNG_ERROR_TYPES))
*
* for cls, constants in const_defs: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "src/lxml/xmlerror.pxi":801
+ /* "src/lxml/xmlerror.pxi":805
*
* # discard the global tuple references after use
* __ERROR_LEVELS = __ERROR_DOMAINS = __PARSER_ERROR_TYPES = __RELAXNG_ERROR_TYPES = None # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, Py_None);
__Pyx_GIVEREF(Py_None);
- /* "src/lxml/xmlerror.pxi":780
+ /* "src/lxml/xmlerror.pxi":784
* ################################################################################
*
* cdef __initErrorConstants(): # <<<<<<<<<<<<<<
* if not root_name and (public_id or system_url):
* raise ValueError, u"Could not find root node" # <<<<<<<<<<<<<<
*
- * property root_name:
+ * @property
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Could_not_find_root_node, 0, 0);
__PYX_ERR(0, 516, __pyx_L1_error)
return __pyx_r;
}
-/* "lxml/etree.pyx":520
- * property root_name:
- * u"Returns the name of the root node as defined by the DOCTYPE."
- * def __get__(self): # <<<<<<<<<<<<<<
- * root_name, public_id, system_url = self._doc.getdoctype()
- * return root_name
+/* "lxml/etree.pyx":519
+ *
+ * @property
+ * def root_name(self): # <<<<<<<<<<<<<<
+ * """Returns the name of the root node as defined by the DOCTYPE."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":521
- * u"Returns the name of the root node as defined by the DOCTYPE."
- * def __get__(self):
- * root_name, public_id, system_url = self._doc.getdoctype() # <<<<<<<<<<<<<<
- * return root_name
+ * def root_name(self):
+ * """Returns the name of the root node as defined by the DOCTYPE."""
+ * root_name, public_id, system_url = self._doc.getdoctype() # <<<<<<<<<<<<<<
+ * return root_name
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 521, __pyx_L1_error)
__pyx_t_4 = 0;
/* "lxml/etree.pyx":522
- * def __get__(self):
- * root_name, public_id, system_url = self._doc.getdoctype()
- * return root_name # <<<<<<<<<<<<<<
+ * """Returns the name of the root node as defined by the DOCTYPE."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
+ * return root_name # <<<<<<<<<<<<<<
*
* @cython.final
*/
__pyx_r = __pyx_v_root_name;
goto __pyx_L0;
- /* "lxml/etree.pyx":520
- * property root_name:
- * u"Returns the name of the root node as defined by the DOCTYPE."
- * def __get__(self): # <<<<<<<<<<<<<<
- * root_name, public_id, system_url = self._doc.getdoctype()
- * return root_name
+ /* "lxml/etree.pyx":519
+ *
+ * @property
+ * def root_name(self): # <<<<<<<<<<<<<<
+ * """Returns the name of the root node as defined by the DOCTYPE."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
*/
/* function exit code */
*
* @cython.final
* cdef tree.xmlDtd* _get_c_dtd(self): # <<<<<<<<<<<<<<
- * u"""Return the DTD. Create it if it does not yet exist."""
+ * """"Return the DTD. Create it if it does not yet exist."""
* cdef xmlDoc* c_doc = self._doc._c_doc
*/
/* "lxml/etree.pyx":527
* cdef tree.xmlDtd* _get_c_dtd(self):
- * u"""Return the DTD. Create it if it does not yet exist."""
+ * """"Return the DTD. Create it if it does not yet exist."""
* cdef xmlDoc* c_doc = self._doc._c_doc # <<<<<<<<<<<<<<
* cdef xmlNode* c_root_node
* cdef const_xmlChar* c_name
*
* @cython.final
* cdef tree.xmlDtd* _get_c_dtd(self): # <<<<<<<<<<<<<<
- * u"""Return the DTD. Create it if it does not yet exist."""
+ * """"Return the DTD. Create it if it does not yet exist."""
* cdef xmlDoc* c_doc = self._doc._c_doc
*/
* tree.xmlFree(<void*>c_dtd.SystemID)
* c_dtd.SystemID = c_value # <<<<<<<<<<<<<<
*
- * property xml_version:
+ * @property
*/
__pyx_v_c_dtd->SystemID = __pyx_v_c_value;
return __pyx_r;
}
-/* "lxml/etree.pyx":609
- * property xml_version:
- * u"Returns the XML version as declared by the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * xml_version, encoding = self._doc.getxmlinfo()
- * return xml_version
+/* "lxml/etree.pyx":608
+ *
+ * @property
+ * def xml_version(self): # <<<<<<<<<<<<<<
+ * """Returns the XML version as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":610
- * u"Returns the XML version as declared by the document."
- * def __get__(self):
- * xml_version, encoding = self._doc.getxmlinfo() # <<<<<<<<<<<<<<
- * return xml_version
+ * def xml_version(self):
+ * """Returns the XML version as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo() # <<<<<<<<<<<<<<
+ * return xml_version
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error)
__pyx_t_3 = 0;
/* "lxml/etree.pyx":611
- * def __get__(self):
- * xml_version, encoding = self._doc.getxmlinfo()
- * return xml_version # <<<<<<<<<<<<<<
+ * """Returns the XML version as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
+ * return xml_version # <<<<<<<<<<<<<<
*
- * property encoding:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_xml_version);
__pyx_r = __pyx_v_xml_version;
goto __pyx_L0;
- /* "lxml/etree.pyx":609
- * property xml_version:
- * u"Returns the XML version as declared by the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * xml_version, encoding = self._doc.getxmlinfo()
- * return xml_version
+ /* "lxml/etree.pyx":608
+ *
+ * @property
+ * def xml_version(self): # <<<<<<<<<<<<<<
+ * """Returns the XML version as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":615
- * property encoding:
- * u"Returns the encoding name as declared by the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * xml_version, encoding = self._doc.getxmlinfo()
- * return encoding
+/* "lxml/etree.pyx":614
+ *
+ * @property
+ * def encoding(self): # <<<<<<<<<<<<<<
+ * """Returns the encoding name as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":616
- * u"Returns the encoding name as declared by the document."
- * def __get__(self):
- * xml_version, encoding = self._doc.getxmlinfo() # <<<<<<<<<<<<<<
- * return encoding
+ * def encoding(self):
+ * """Returns the encoding name as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo() # <<<<<<<<<<<<<<
+ * return encoding
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
__pyx_t_3 = 0;
/* "lxml/etree.pyx":617
- * def __get__(self):
- * xml_version, encoding = self._doc.getxmlinfo()
- * return encoding # <<<<<<<<<<<<<<
+ * """Returns the encoding name as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
+ * return encoding # <<<<<<<<<<<<<<
*
- * property standalone:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_encoding);
__pyx_r = __pyx_v_encoding;
goto __pyx_L0;
- /* "lxml/etree.pyx":615
- * property encoding:
- * u"Returns the encoding name as declared by the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * xml_version, encoding = self._doc.getxmlinfo()
- * return encoding
+ /* "lxml/etree.pyx":614
+ *
+ * @property
+ * def encoding(self): # <<<<<<<<<<<<<<
+ * """Returns the encoding name as declared by the document."""
+ * xml_version, encoding = self._doc.getxmlinfo()
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":627
- * ``standalone`` flag was set to ``'yes'`` or not.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._doc.isstandalone()
+/* "lxml/etree.pyx":620
*
+ * @property
+ * def standalone(self): # <<<<<<<<<<<<<<
+ * """Returns the standalone flag as declared by the document. The possible
+ * values are True (``standalone='yes'``), False
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":628
+ * ``standalone`` flag was set to ``'yes'`` or not.
* """
- * def __get__(self):
- * return self._doc.isstandalone() # <<<<<<<<<<<<<<
+ * return self._doc.isstandalone() # <<<<<<<<<<<<<<
*
* property URL:
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":627
- * ``standalone`` flag was set to ``'yes'`` or not.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._doc.isstandalone()
+ /* "lxml/etree.pyx":620
*
+ * @property
+ * def standalone(self): # <<<<<<<<<<<<<<
+ * """Returns the standalone flag as declared by the document. The possible
+ * values are True (``standalone='yes'``), False
*/
/* function exit code */
* if c_oldurl is not NULL:
* tree.xmlFree(<void*>c_oldurl) # <<<<<<<<<<<<<<
*
- * property doctype:
+ * @property
*/
xmlFree(((void *)__pyx_v_c_oldurl));
return __pyx_r;
}
-/* "lxml/etree.pyx":648
- * property doctype:
- * u"Returns a DOCTYPE declaration string for the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * root_name, public_id, system_url = self._doc.getdoctype()
- * if system_url:
+/* "lxml/etree.pyx":647
+ *
+ * @property
+ * def doctype(self): # <<<<<<<<<<<<<<
+ * """Returns a DOCTYPE declaration string for the document."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":649
- * u"Returns a DOCTYPE declaration string for the document."
- * def __get__(self):
- * root_name, public_id, system_url = self._doc.getdoctype() # <<<<<<<<<<<<<<
- * if system_url:
- * # If '"' in system_url, we must escape it with single
+ * def doctype(self):
+ * """Returns a DOCTYPE declaration string for the document."""
+ * root_name, public_id, system_url = self._doc.getdoctype() # <<<<<<<<<<<<<<
+ * if system_url:
+ * # If '"' in system_url, we must escape it with single
*/
__pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 649, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
/* "lxml/etree.pyx":650
- * def __get__(self):
- * root_name, public_id, system_url = self._doc.getdoctype()
- * if system_url: # <<<<<<<<<<<<<<
- * # If '"' in system_url, we must escape it with single
- * # quotes, otherwise escape with double quotes. If url
+ * """Returns a DOCTYPE declaration string for the document."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
+ * if system_url: # <<<<<<<<<<<<<<
+ * # If '"' in system_url, we must escape it with single
+ * # quotes, otherwise escape with double quotes. If url
*/
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 650, __pyx_L1_error)
if (__pyx_t_7) {
/* "lxml/etree.pyx":655
- * # contains both a single quote and a double quote, XML
- * # standard is being violated.
- * if '"' in system_url: # <<<<<<<<<<<<<<
- * quoted_system_url = f"'{system_url}'"
- * else:
+ * # contains both a single quote and a double quote, XML
+ * # standard is being violated.
+ * if '"' in system_url: # <<<<<<<<<<<<<<
+ * quoted_system_url = f"'{system_url}'"
+ * else:
*/
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__22, __pyx_v_system_url, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 655, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
/* "lxml/etree.pyx":656
- * # standard is being violated.
- * if '"' in system_url:
- * quoted_system_url = f"'{system_url}'" # <<<<<<<<<<<<<<
- * else:
- * quoted_system_url = f'"{system_url}"'
+ * # standard is being violated.
+ * if '"' in system_url:
+ * quoted_system_url = f"'{system_url}'" # <<<<<<<<<<<<<<
+ * else:
+ * quoted_system_url = f'"{system_url}"'
*/
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
/* "lxml/etree.pyx":655
- * # contains both a single quote and a double quote, XML
- * # standard is being violated.
- * if '"' in system_url: # <<<<<<<<<<<<<<
- * quoted_system_url = f"'{system_url}'"
- * else:
+ * # contains both a single quote and a double quote, XML
+ * # standard is being violated.
+ * if '"' in system_url: # <<<<<<<<<<<<<<
+ * quoted_system_url = f"'{system_url}'"
+ * else:
*/
goto __pyx_L6;
}
/* "lxml/etree.pyx":658
- * quoted_system_url = f"'{system_url}'"
- * else:
- * quoted_system_url = f'"{system_url}"' # <<<<<<<<<<<<<<
- * if public_id:
- * if system_url:
+ * quoted_system_url = f"'{system_url}'"
+ * else:
+ * quoted_system_url = f'"{system_url}"' # <<<<<<<<<<<<<<
+ * if public_id:
+ * if system_url:
*/
/*else*/ {
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 658, __pyx_L1_error)
__pyx_L6:;
/* "lxml/etree.pyx":650
- * def __get__(self):
- * root_name, public_id, system_url = self._doc.getdoctype()
- * if system_url: # <<<<<<<<<<<<<<
- * # If '"' in system_url, we must escape it with single
- * # quotes, otherwise escape with double quotes. If url
+ * """Returns a DOCTYPE declaration string for the document."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
+ * if system_url: # <<<<<<<<<<<<<<
+ * # If '"' in system_url, we must escape it with single
+ * # quotes, otherwise escape with double quotes. If url
*/
}
/* "lxml/etree.pyx":659
- * else:
- * quoted_system_url = f'"{system_url}"'
- * if public_id: # <<<<<<<<<<<<<<
- * if system_url:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
+ * else:
+ * quoted_system_url = f'"{system_url}"'
+ * if public_id: # <<<<<<<<<<<<<<
+ * if system_url:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
*/
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 659, __pyx_L1_error)
if (__pyx_t_8) {
/* "lxml/etree.pyx":660
- * quoted_system_url = f'"{system_url}"'
- * if public_id:
- * if system_url: # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
- * else:
+ * quoted_system_url = f'"{system_url}"'
+ * if public_id:
+ * if system_url: # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
+ * else:
*/
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 660, __pyx_L1_error)
if (__pyx_t_8) {
/* "lxml/etree.pyx":661
- * if public_id:
- * if system_url:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>' # <<<<<<<<<<<<<<
- * else:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
+ * if public_id:
+ * if system_url:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>' # <<<<<<<<<<<<<<
+ * else:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
goto __pyx_L0;
/* "lxml/etree.pyx":660
- * quoted_system_url = f'"{system_url}"'
- * if public_id:
- * if system_url: # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
- * else:
+ * quoted_system_url = f'"{system_url}"'
+ * if public_id:
+ * if system_url: # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
+ * else:
*/
}
/* "lxml/etree.pyx":663
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
- * else:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">' # <<<<<<<<<<<<<<
- * elif system_url:
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
+ * else:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">' # <<<<<<<<<<<<<<
+ * elif system_url:
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
}
/* "lxml/etree.pyx":659
- * else:
- * quoted_system_url = f'"{system_url}"'
- * if public_id: # <<<<<<<<<<<<<<
- * if system_url:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
+ * else:
+ * quoted_system_url = f'"{system_url}"'
+ * if public_id: # <<<<<<<<<<<<<<
+ * if system_url:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
*/
}
/* "lxml/etree.pyx":664
- * else:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
- * elif system_url: # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- * elif self._doc.hasdoctype():
+ * else:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
+ * elif system_url: # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * elif self._doc.hasdoctype():
*/
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 664, __pyx_L1_error)
if (__pyx_t_8) {
/* "lxml/etree.pyx":665
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
- * elif system_url:
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>' # <<<<<<<<<<<<<<
- * elif self._doc.hasdoctype():
- * return f'<!DOCTYPE {root_name}>'
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
+ * elif system_url:
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>' # <<<<<<<<<<<<<<
+ * elif self._doc.hasdoctype():
+ * return f'<!DOCTYPE {root_name}>'
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 665, __pyx_L1_error)
goto __pyx_L0;
/* "lxml/etree.pyx":664
- * else:
- * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
- * elif system_url: # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- * elif self._doc.hasdoctype():
+ * else:
+ * return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
+ * elif system_url: # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * elif self._doc.hasdoctype():
*/
}
/* "lxml/etree.pyx":666
- * elif system_url:
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- * elif self._doc.hasdoctype(): # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name}>'
- * else:
+ * elif system_url:
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * elif self._doc.hasdoctype(): # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name}>'
+ * else:
*/
__pyx_t_8 = (__pyx_f_4lxml_5etree_9_Document_hasdoctype(__pyx_v_self->_doc) != 0);
if (__pyx_t_8) {
/* "lxml/etree.pyx":667
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- * elif self._doc.hasdoctype():
- * return f'<!DOCTYPE {root_name}>' # <<<<<<<<<<<<<<
- * else:
- * return u''
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * elif self._doc.hasdoctype():
+ * return f'<!DOCTYPE {root_name}>' # <<<<<<<<<<<<<<
+ * else:
+ * return u''
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 667, __pyx_L1_error)
goto __pyx_L0;
/* "lxml/etree.pyx":666
- * elif system_url:
- * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- * elif self._doc.hasdoctype(): # <<<<<<<<<<<<<<
- * return f'<!DOCTYPE {root_name}>'
- * else:
+ * elif system_url:
+ * return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ * elif self._doc.hasdoctype(): # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name}>'
+ * else:
*/
}
/* "lxml/etree.pyx":669
- * return f'<!DOCTYPE {root_name}>'
- * else:
- * return u'' # <<<<<<<<<<<<<<
+ * return f'<!DOCTYPE {root_name}>'
+ * else:
+ * return u'' # <<<<<<<<<<<<<<
*
- * property internalDTD:
+ * @property
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
}
- /* "lxml/etree.pyx":648
- * property doctype:
- * u"Returns a DOCTYPE declaration string for the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * root_name, public_id, system_url = self._doc.getdoctype()
- * if system_url:
+ /* "lxml/etree.pyx":647
+ *
+ * @property
+ * def doctype(self): # <<<<<<<<<<<<<<
+ * """Returns a DOCTYPE declaration string for the document."""
+ * root_name, public_id, system_url = self._doc.getdoctype()
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":673
- * property internalDTD:
- * u"Returns a DTD validator based on the internal subset of the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _dtdFactory(self._doc._c_doc.intSubset)
+/* "lxml/etree.pyx":672
*
+ * @property
+ * def internalDTD(self): # <<<<<<<<<<<<<<
+ * """Returns a DTD validator based on the internal subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.intSubset)
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":674
- * u"Returns a DTD validator based on the internal subset of the document."
- * def __get__(self):
- * return _dtdFactory(self._doc._c_doc.intSubset) # <<<<<<<<<<<<<<
+ * def internalDTD(self):
+ * """Returns a DTD validator based on the internal subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.intSubset) # <<<<<<<<<<<<<<
*
- * property externalDTD:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__dtdFactory(__pyx_v_self->_doc->_c_doc->intSubset)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 674, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":673
- * property internalDTD:
- * u"Returns a DTD validator based on the internal subset of the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _dtdFactory(self._doc._c_doc.intSubset)
+ /* "lxml/etree.pyx":672
*
+ * @property
+ * def internalDTD(self): # <<<<<<<<<<<<<<
+ * """Returns a DTD validator based on the internal subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.intSubset)
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":678
- * property externalDTD:
- * u"Returns a DTD validator based on the external subset of the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _dtdFactory(self._doc._c_doc.extSubset)
+/* "lxml/etree.pyx":677
*
+ * @property
+ * def externalDTD(self): # <<<<<<<<<<<<<<
+ * """Returns a DTD validator based on the external subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.extSubset)
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":679
- * u"Returns a DTD validator based on the external subset of the document."
- * def __get__(self):
- * return _dtdFactory(self._doc._c_doc.extSubset) # <<<<<<<<<<<<<<
+ * def externalDTD(self):
+ * """Returns a DTD validator based on the external subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.extSubset) # <<<<<<<<<<<<<<
*
*
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":678
- * property externalDTD:
- * u"Returns a DTD validator based on the external subset of the document."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _dtdFactory(self._doc._c_doc.extSubset)
+ /* "lxml/etree.pyx":677
*
+ * @property
+ * def externalDTD(self): # <<<<<<<<<<<<<<
+ * """Returns a DTD validator based on the external subset of the document."""
+ * return _dtdFactory(self._doc._c_doc.extSubset)
*/
/* function exit code */
* else:
* self._doc._setNodeNs(self._c_node, _xcstr(ns)) # <<<<<<<<<<<<<<
*
- * property attrib:
+ * @property
*/
/*else*/ {
__pyx_t_1 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_self->_doc, __pyx_v_self->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 997, __pyx_L1_error)
return __pyx_r;
}
-/* "lxml/etree.pyx":1003
- * keys(), values() and items() to access element attributes.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _Attrib.__new__(_Attrib, self)
+/* "lxml/etree.pyx":1000
*
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * """Element attribute dictionary. Where possible, use get(), set(),
+ * keys(), values() and items() to access element attributes.
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":1004
+ * keys(), values() and items() to access element attributes.
* """
- * def __get__(self):
- * return _Attrib.__new__(_Attrib, self) # <<<<<<<<<<<<<<
+ * return _Attrib.__new__(_Attrib, self) # <<<<<<<<<<<<<<
*
* property text:
*/
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1003
- * keys(), values() and items() to access element attributes.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _Attrib.__new__(_Attrib, self)
+ /* "lxml/etree.pyx":1000
*
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * """Element attribute dictionary. Where possible, use get(), set(),
+ * keys(), values() and items() to access element attributes.
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1045
- * u"""Namespace prefix or None.
+/* "lxml/etree.pyx":1043
+ * # not in ElementTree, read-only
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix or None.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL:
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":1046
+ * """Namespace prefix or None.
* """
- * def __get__(self):
- * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
+ * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
*/
__pyx_t_1 = ((__pyx_v_self->_c_node->ns != NULL) != 0);
if (__pyx_t_1) {
/* "lxml/etree.pyx":1047
- * def __get__(self):
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
- * return funicode(self._c_node.ns.prefix)
- * return None
+ * """
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.ns.prefix)
+ * return None
*/
__pyx_t_1 = ((__pyx_v_self->_c_node->ns->prefix != NULL) != 0);
if (__pyx_t_1) {
/* "lxml/etree.pyx":1048
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix) # <<<<<<<<<<<<<<
- * return None
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix) # <<<<<<<<<<<<<<
+ * return None
*
*/
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
/* "lxml/etree.pyx":1047
- * def __get__(self):
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
- * return funicode(self._c_node.ns.prefix)
- * return None
+ * """
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.ns.prefix)
+ * return None
*/
}
/* "lxml/etree.pyx":1046
+ * """Namespace prefix or None.
* """
- * def __get__(self):
- * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
+ * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
*/
}
/* "lxml/etree.pyx":1049
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
- * return None # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
+ * return None # <<<<<<<<<<<<<<
*
* # not in ElementTree, read-only
*/
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":1045
- * u"""Namespace prefix or None.
+ /* "lxml/etree.pyx":1043
+ * # not in ElementTree, read-only
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix or None.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL:
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1076
- * Note that changing the returned dict has no effect on the Element.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef xmlNode* c_node
- * cdef xmlNs* c_ns
+/* "lxml/etree.pyx":1070
+ * # not in ElementTree, read-only
+ * @property
+ * def nsmap(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix->URI mapping known in the context of this
+ * Element. This includes all namespace declarations of the
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/etree.pyx":1079
- * cdef xmlNode* c_node
- * cdef xmlNs* c_ns
- * _assertValidNode(self) # <<<<<<<<<<<<<<
- * nsmap = {}
- * c_node = self._c_node
+ * cdef xmlNode* c_node
+ * cdef xmlNs* c_ns
+ * _assertValidNode(self) # <<<<<<<<<<<<<<
+ * nsmap = {}
+ * c_node = self._c_node
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1079, __pyx_L1_error)
/* "lxml/etree.pyx":1080
- * cdef xmlNs* c_ns
- * _assertValidNode(self)
- * nsmap = {} # <<<<<<<<<<<<<<
- * c_node = self._c_node
- * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
+ * cdef xmlNs* c_ns
+ * _assertValidNode(self)
+ * nsmap = {} # <<<<<<<<<<<<<<
+ * c_node = self._c_node
+ * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
*/
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1080, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_2 = 0;
/* "lxml/etree.pyx":1081
- * _assertValidNode(self)
- * nsmap = {}
- * c_node = self._c_node # <<<<<<<<<<<<<<
- * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
- * c_ns = c_node.nsDef
+ * _assertValidNode(self)
+ * nsmap = {}
+ * c_node = self._c_node # <<<<<<<<<<<<<<
+ * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
+ * c_ns = c_node.nsDef
*/
__pyx_t_3 = __pyx_v_self->_c_node;
__pyx_v_c_node = __pyx_t_3;
/* "lxml/etree.pyx":1082
- * nsmap = {}
- * c_node = self._c_node
- * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
- * c_ns = c_node.nsDef
- * while c_ns is not NULL:
+ * nsmap = {}
+ * c_node = self._c_node
+ * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * c_ns = c_node.nsDef
+ * while c_ns is not NULL:
*/
while (1) {
__pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
if (!__pyx_t_4) break;
/* "lxml/etree.pyx":1083
- * c_node = self._c_node
- * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
- * c_ns = c_node.nsDef # <<<<<<<<<<<<<<
- * while c_ns is not NULL:
- * prefix = funicodeOrNone(c_ns.prefix)
+ * c_node = self._c_node
+ * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
+ * c_ns = c_node.nsDef # <<<<<<<<<<<<<<
+ * while c_ns is not NULL:
+ * prefix = funicodeOrNone(c_ns.prefix)
*/
__pyx_t_6 = __pyx_v_c_node->nsDef;
__pyx_v_c_ns = __pyx_t_6;
/* "lxml/etree.pyx":1084
- * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
- * c_ns = c_node.nsDef
- * while c_ns is not NULL: # <<<<<<<<<<<<<<
- * prefix = funicodeOrNone(c_ns.prefix)
- * if prefix not in nsmap:
+ * while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
+ * c_ns = c_node.nsDef
+ * while c_ns is not NULL: # <<<<<<<<<<<<<<
+ * prefix = funicodeOrNone(c_ns.prefix)
+ * if prefix not in nsmap:
*/
while (1) {
__pyx_t_4 = ((__pyx_v_c_ns != NULL) != 0);
if (!__pyx_t_4) break;
/* "lxml/etree.pyx":1085
- * c_ns = c_node.nsDef
- * while c_ns is not NULL:
- * prefix = funicodeOrNone(c_ns.prefix) # <<<<<<<<<<<<<<
- * if prefix not in nsmap:
- * nsmap[prefix] = funicodeOrNone(c_ns.href)
+ * c_ns = c_node.nsDef
+ * while c_ns is not NULL:
+ * prefix = funicodeOrNone(c_ns.prefix) # <<<<<<<<<<<<<<
+ * if prefix not in nsmap:
+ * nsmap[prefix] = funicodeOrNone(c_ns.href)
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_ns->prefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1085, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_2 = 0;
/* "lxml/etree.pyx":1086
- * while c_ns is not NULL:
- * prefix = funicodeOrNone(c_ns.prefix)
- * if prefix not in nsmap: # <<<<<<<<<<<<<<
- * nsmap[prefix] = funicodeOrNone(c_ns.href)
- * c_ns = c_ns.next
+ * while c_ns is not NULL:
+ * prefix = funicodeOrNone(c_ns.prefix)
+ * if prefix not in nsmap: # <<<<<<<<<<<<<<
+ * nsmap[prefix] = funicodeOrNone(c_ns.href)
+ * c_ns = c_ns.next
*/
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_prefix, __pyx_v_nsmap, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1086, __pyx_L1_error)
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
/* "lxml/etree.pyx":1087
- * prefix = funicodeOrNone(c_ns.prefix)
- * if prefix not in nsmap:
- * nsmap[prefix] = funicodeOrNone(c_ns.href) # <<<<<<<<<<<<<<
- * c_ns = c_ns.next
- * c_node = c_node.parent
+ * prefix = funicodeOrNone(c_ns.prefix)
+ * if prefix not in nsmap:
+ * nsmap[prefix] = funicodeOrNone(c_ns.href) # <<<<<<<<<<<<<<
+ * c_ns = c_ns.next
+ * c_node = c_node.parent
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_ns->href); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "lxml/etree.pyx":1086
- * while c_ns is not NULL:
- * prefix = funicodeOrNone(c_ns.prefix)
- * if prefix not in nsmap: # <<<<<<<<<<<<<<
- * nsmap[prefix] = funicodeOrNone(c_ns.href)
- * c_ns = c_ns.next
+ * while c_ns is not NULL:
+ * prefix = funicodeOrNone(c_ns.prefix)
+ * if prefix not in nsmap: # <<<<<<<<<<<<<<
+ * nsmap[prefix] = funicodeOrNone(c_ns.href)
+ * c_ns = c_ns.next
*/
}
/* "lxml/etree.pyx":1088
- * if prefix not in nsmap:
- * nsmap[prefix] = funicodeOrNone(c_ns.href)
- * c_ns = c_ns.next # <<<<<<<<<<<<<<
- * c_node = c_node.parent
- * return nsmap
+ * if prefix not in nsmap:
+ * nsmap[prefix] = funicodeOrNone(c_ns.href)
+ * c_ns = c_ns.next # <<<<<<<<<<<<<<
+ * c_node = c_node.parent
+ * return nsmap
*/
__pyx_t_6 = __pyx_v_c_ns->next;
__pyx_v_c_ns = __pyx_t_6;
}
/* "lxml/etree.pyx":1089
- * nsmap[prefix] = funicodeOrNone(c_ns.href)
- * c_ns = c_ns.next
- * c_node = c_node.parent # <<<<<<<<<<<<<<
- * return nsmap
+ * nsmap[prefix] = funicodeOrNone(c_ns.href)
+ * c_ns = c_ns.next
+ * c_node = c_node.parent # <<<<<<<<<<<<<<
+ * return nsmap
*
*/
__pyx_t_3 = __pyx_v_c_node->parent;
}
/* "lxml/etree.pyx":1090
- * c_ns = c_ns.next
- * c_node = c_node.parent
- * return nsmap # <<<<<<<<<<<<<<
+ * c_ns = c_ns.next
+ * c_node = c_node.parent
+ * return nsmap # <<<<<<<<<<<<<<
*
* # not in ElementTree, read-only
*/
__pyx_r = __pyx_v_nsmap;
goto __pyx_L0;
- /* "lxml/etree.pyx":1076
- * Note that changing the returned dict has no effect on the Element.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef xmlNode* c_node
- * cdef xmlNs* c_ns
+ /* "lxml/etree.pyx":1070
+ * # not in ElementTree, read-only
+ * @property
+ * def nsmap(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix->URI mapping known in the context of this
+ * Element. This includes all namespace declarations of the
*/
/* function exit code */
/* "lxml/etree.pyx":1390
* see `iter`.
* """
+ * if preceding: # <<<<<<<<<<<<<<
+ * if self._c_node and not self._c_node.prev:
+ * return ITER_EMPTY
+ */
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_preceding); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1390, __pyx_L1_error)
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1391
+ * """
+ * if preceding:
+ * if self._c_node and not self._c_node.prev: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * elif self._c_node and not self._c_node.next:
+ */
+ __pyx_t_2 = (__pyx_v_self->_c_node != 0);
+ if (__pyx_t_2) {
+ } else {
+ __pyx_t_1 = __pyx_t_2;
+ goto __pyx_L5_bool_binop_done;
+ }
+ __pyx_t_2 = ((!(__pyx_v_self->_c_node->prev != 0)) != 0);
+ __pyx_t_1 = __pyx_t_2;
+ __pyx_L5_bool_binop_done:;
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1392
+ * if preceding:
+ * if self._c_node and not self._c_node.prev:
+ * return ITER_EMPTY # <<<<<<<<<<<<<<
+ * elif self._c_node and not self._c_node.next:
+ * return ITER_EMPTY
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+ __pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
+ goto __pyx_L0;
+
+ /* "lxml/etree.pyx":1391
+ * """
+ * if preceding:
+ * if self._c_node and not self._c_node.prev: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * elif self._c_node and not self._c_node.next:
+ */
+ }
+
+ /* "lxml/etree.pyx":1390
+ * see `iter`.
+ * """
+ * if preceding: # <<<<<<<<<<<<<<
+ * if self._c_node and not self._c_node.prev:
+ * return ITER_EMPTY
+ */
+ goto __pyx_L3;
+ }
+
+ /* "lxml/etree.pyx":1393
+ * if self._c_node and not self._c_node.prev:
+ * return ITER_EMPTY
+ * elif self._c_node and not self._c_node.next: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ __pyx_t_2 = (__pyx_v_self->_c_node != 0);
+ if (__pyx_t_2) {
+ } else {
+ __pyx_t_1 = __pyx_t_2;
+ goto __pyx_L7_bool_binop_done;
+ }
+ __pyx_t_2 = ((!(__pyx_v_self->_c_node->next != 0)) != 0);
+ __pyx_t_1 = __pyx_t_2;
+ __pyx_L7_bool_binop_done:;
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1394
+ * return ITER_EMPTY
+ * elif self._c_node and not self._c_node.next:
+ * return ITER_EMPTY # <<<<<<<<<<<<<<
+ * if tag is not None:
+ * tags += (tag,)
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+ __pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
+ goto __pyx_L0;
+
+ /* "lxml/etree.pyx":1393
+ * if self._c_node and not self._c_node.prev:
+ * return ITER_EMPTY
+ * elif self._c_node and not self._c_node.next: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ }
+ __pyx_L3:;
+
+ /* "lxml/etree.pyx":1395
+ * elif self._c_node and not self._c_node.next:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return SiblingsIterator(self, tags, preceding=preceding)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1391
- * """
+ /* "lxml/etree.pyx":1396
+ * return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return SiblingsIterator(self, tags, preceding=preceding)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1391, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1391, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1396, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1390
- * see `iter`.
- * """
+ /* "lxml/etree.pyx":1395
+ * elif self._c_node and not self._c_node.next:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return SiblingsIterator(self, tags, preceding=preceding)
*/
}
- /* "lxml/etree.pyx":1392
+ /* "lxml/etree.pyx":1397
* if tag is not None:
* tags += (tag,)
* return SiblingsIterator(self, tags, preceding=preceding) # <<<<<<<<<<<<<<
* def iterancestors(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1392, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1392, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_preceding, __pyx_v_preceding) < 0) __PYX_ERR(0, 1392, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_SiblingsIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1392, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_preceding, __pyx_v_preceding) < 0) __PYX_ERR(0, 1397, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_SiblingsIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
return __pyx_r;
}
-/* "lxml/etree.pyx":1394
+/* "lxml/etree.pyx":1399
* return SiblingsIterator(self, tags, preceding=preceding)
*
* def iterancestors(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterancestors") < 0)) __PYX_ERR(0, 1394, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterancestors") < 0)) __PYX_ERR(0, 1399, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("iterancestors", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1402
+ /* "lxml/etree.pyx":1407
* see `iter`.
* """
+ * if self._c_node and not self._c_node.parent: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ __pyx_t_2 = (__pyx_v_self->_c_node != 0);
+ if (__pyx_t_2) {
+ } else {
+ __pyx_t_1 = __pyx_t_2;
+ goto __pyx_L4_bool_binop_done;
+ }
+ __pyx_t_2 = ((!(__pyx_v_self->_c_node->parent != 0)) != 0);
+ __pyx_t_1 = __pyx_t_2;
+ __pyx_L4_bool_binop_done:;
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1408
+ * """
+ * if self._c_node and not self._c_node.parent:
+ * return ITER_EMPTY # <<<<<<<<<<<<<<
+ * if tag is not None:
+ * tags += (tag,)
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+ __pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
+ goto __pyx_L0;
+
+ /* "lxml/etree.pyx":1407
+ * see `iter`.
+ * """
+ * if self._c_node and not self._c_node.parent: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ }
+
+ /* "lxml/etree.pyx":1409
+ * if self._c_node and not self._c_node.parent:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return AncestorsIterator(self, tags)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1403
- * """
+ /* "lxml/etree.pyx":1410
+ * return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return AncestorsIterator(self, tags)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1403, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1410, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1403, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1410, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1402
- * see `iter`.
- * """
+ /* "lxml/etree.pyx":1409
+ * if self._c_node and not self._c_node.parent:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return AncestorsIterator(self, tags)
*/
}
- /* "lxml/etree.pyx":1404
+ /* "lxml/etree.pyx":1411
* if tag is not None:
* tags += (tag,)
* return AncestorsIterator(self, tags) # <<<<<<<<<<<<<<
* def iterdescendants(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1404, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_AncestorsIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1404, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_AncestorsIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1394
+ /* "lxml/etree.pyx":1399
* return SiblingsIterator(self, tags, preceding=preceding)
*
* def iterancestors(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1406
+/* "lxml/etree.pyx":1413
* return AncestorsIterator(self, tags)
*
* def iterdescendants(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterdescendants") < 0)) __PYX_ERR(0, 1406, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterdescendants") < 0)) __PYX_ERR(0, 1413, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("iterdescendants", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1415
+ /* "lxml/etree.pyx":1422
+ * with specific tags, see `iter`.
+ * """
+ * if self._c_node and not self._c_node.children: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ __pyx_t_2 = (__pyx_v_self->_c_node != 0);
+ if (__pyx_t_2) {
+ } else {
+ __pyx_t_1 = __pyx_t_2;
+ goto __pyx_L4_bool_binop_done;
+ }
+ __pyx_t_2 = ((!(__pyx_v_self->_c_node->children != 0)) != 0);
+ __pyx_t_1 = __pyx_t_2;
+ __pyx_L4_bool_binop_done:;
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1423
+ * """
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY # <<<<<<<<<<<<<<
+ * if tag is not None:
+ * tags += (tag,)
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+ __pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
+ goto __pyx_L0;
+
+ /* "lxml/etree.pyx":1422
* with specific tags, see `iter`.
* """
+ * if self._c_node and not self._c_node.children: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ }
+
+ /* "lxml/etree.pyx":1424
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return ElementDepthFirstIterator(self, tags, inclusive=False)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1416
- * """
+ /* "lxml/etree.pyx":1425
+ * return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1416, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1416, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1415
- * with specific tags, see `iter`.
- * """
+ /* "lxml/etree.pyx":1424
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*/
}
- /* "lxml/etree.pyx":1417
+ /* "lxml/etree.pyx":1426
* if tag is not None:
* tags += (tag,)
* return ElementDepthFirstIterator(self, tags, inclusive=False) # <<<<<<<<<<<<<<
* def iterchildren(self, tag=None, *tags, reversed=False):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1417, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1417, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_inclusive, Py_False) < 0) __PYX_ERR(0, 1417, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1417, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_inclusive, Py_False) < 0) __PYX_ERR(0, 1426, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1406
+ /* "lxml/etree.pyx":1413
* return AncestorsIterator(self, tags)
*
* def iterdescendants(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1419
+/* "lxml/etree.pyx":1428
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*
* def iterchildren(self, tag=None, *tags, reversed=False): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterchildren") < 0)) __PYX_ERR(0, 1419, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterchildren") < 0)) __PYX_ERR(0, 1428, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("iterchildren", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1428
+ /* "lxml/etree.pyx":1437
* to find only elements with specific tags, see `iter`.
* """
+ * if self._c_node and not self._c_node.children: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ __pyx_t_2 = (__pyx_v_self->_c_node != 0);
+ if (__pyx_t_2) {
+ } else {
+ __pyx_t_1 = __pyx_t_2;
+ goto __pyx_L4_bool_binop_done;
+ }
+ __pyx_t_2 = ((!(__pyx_v_self->_c_node->children != 0)) != 0);
+ __pyx_t_1 = __pyx_t_2;
+ __pyx_L4_bool_binop_done:;
+ if (__pyx_t_1) {
+
+ /* "lxml/etree.pyx":1438
+ * """
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY # <<<<<<<<<<<<<<
+ * if tag is not None:
+ * tags += (tag,)
+ */
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+ __pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
+ goto __pyx_L0;
+
+ /* "lxml/etree.pyx":1437
+ * to find only elements with specific tags, see `iter`.
+ * """
+ * if self._c_node and not self._c_node.children: # <<<<<<<<<<<<<<
+ * return ITER_EMPTY
+ * if tag is not None:
+ */
+ }
+
+ /* "lxml/etree.pyx":1439
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return ElementChildIterator(self, tags, reversed=reversed)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1429
- * """
+ /* "lxml/etree.pyx":1440
+ * return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return ElementChildIterator(self, tags, reversed=reversed)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1429, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1429, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1440, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1428
- * to find only elements with specific tags, see `iter`.
- * """
+ /* "lxml/etree.pyx":1439
+ * if self._c_node and not self._c_node.children:
+ * return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
* tags += (tag,)
* return ElementChildIterator(self, tags, reversed=reversed)
*/
}
- /* "lxml/etree.pyx":1430
+ /* "lxml/etree.pyx":1441
* if tag is not None:
* tags += (tag,)
* return ElementChildIterator(self, tags, reversed=reversed) # <<<<<<<<<<<<<<
* def getroottree(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1430, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1430, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_reversed, __pyx_v_reversed) < 0) __PYX_ERR(0, 1430, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementChildIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1430, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_reversed, __pyx_v_reversed) < 0) __PYX_ERR(0, 1441, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementChildIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1419
+ /* "lxml/etree.pyx":1428
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*
* def iterchildren(self, tag=None, *tags, reversed=False): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1432
+/* "lxml/etree.pyx":1443
* return ElementChildIterator(self, tags, reversed=reversed)
*
* def getroottree(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("getroottree", 0);
- /* "lxml/etree.pyx":1441
+ /* "lxml/etree.pyx":1452
* returns None (for the root element) and then build an ElementTree for
* the last parent that was returned."""
* _assertValidDoc(self._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1441, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":1442
+ /* "lxml/etree.pyx":1453
* the last parent that was returned."""
* _assertValidDoc(self._doc)
* return _elementTreeFactory(self._doc, None) # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1442, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1432
+ /* "lxml/etree.pyx":1443
* return ElementChildIterator(self, tags, reversed=reversed)
*
* def getroottree(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1444
+/* "lxml/etree.pyx":1455
* return _elementTreeFactory(self._doc, None)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) __PYX_ERR(0, 1444, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) __PYX_ERR(0, 1455, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("getiterator", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1462
+ /* "lxml/etree.pyx":1473
* with older versions of lxml or ElementTree.
* """
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1463
+ /* "lxml/etree.pyx":1474
* """
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return ElementDepthFirstIterator(self, tags)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1463, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1463, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1462
+ /* "lxml/etree.pyx":1473
* with older versions of lxml or ElementTree.
* """
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1464
+ /* "lxml/etree.pyx":1475
* if tag is not None:
* tags += (tag,)
* return ElementDepthFirstIterator(self, tags) # <<<<<<<<<<<<<<
* def iter(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1464, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1464, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1444
+ /* "lxml/etree.pyx":1455
* return _elementTreeFactory(self._doc, None)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1466
+/* "lxml/etree.pyx":1477
* return ElementDepthFirstIterator(self, tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) __PYX_ERR(0, 1466, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) __PYX_ERR(0, 1477, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("iter", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1486
+ /* "lxml/etree.pyx":1497
* in document order.
* """
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1487
+ /* "lxml/etree.pyx":1498
* """
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return ElementDepthFirstIterator(self, tags)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1487, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1487, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1486
+ /* "lxml/etree.pyx":1497
* in document order.
* """
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1488
+ /* "lxml/etree.pyx":1499
* if tag is not None:
* tags += (tag,)
* return ElementDepthFirstIterator(self, tags) # <<<<<<<<<<<<<<
* def itertext(self, tag=None, *tags, with_tail=True):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1488, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1499, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1488, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1499, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1466
+ /* "lxml/etree.pyx":1477
* return ElementDepthFirstIterator(self, tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1490
+/* "lxml/etree.pyx":1501
* return ElementDepthFirstIterator(self, tags)
*
* def itertext(self, tag=None, *tags, with_tail=True): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itertext") < 0)) __PYX_ERR(0, 1490, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itertext") < 0)) __PYX_ERR(0, 1501, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("itertext", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":1501
+ /* "lxml/etree.pyx":1512
* over tail text.
* """
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1502
+ /* "lxml/etree.pyx":1513
* """
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return ElementTextIterator(self, tags, with_tail=with_tail)
*
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1502, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1513, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1502, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1513, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1501
+ /* "lxml/etree.pyx":1512
* over tail text.
* """
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1503
+ /* "lxml/etree.pyx":1514
* if tag is not None:
* tags += (tag,)
* return ElementTextIterator(self, tags, with_tail=with_tail) # <<<<<<<<<<<<<<
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1503, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_tags);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1503, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_with_tail, __pyx_v_with_tail) < 0) __PYX_ERR(0, 1503, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementTextIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1503, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_with_tail, __pyx_v_with_tail) < 0) __PYX_ERR(0, 1514, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_ElementTextIterator), __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1490
+ /* "lxml/etree.pyx":1501
* return ElementDepthFirstIterator(self, tags)
*
* def itertext(self, tag=None, *tags, with_tail=True): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1505
+/* "lxml/etree.pyx":1516
* return ElementTextIterator(self, tags, with_tail=with_tail)
*
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "makeelement") < 0)) __PYX_ERR(0, 1505, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "makeelement") < 0)) __PYX_ERR(0, 1516, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("makeelement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1505, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("makeelement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1516, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
__Pyx_AddTraceback("lxml.etree._Element.makeelement", __pyx_clineno, __pyx_lineno, __pyx_filename);
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("makeelement", 0);
- /* "lxml/etree.pyx":1510
+ /* "lxml/etree.pyx":1521
* Creates a new element associated with the same document.
* """
* _assertValidDoc(self._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1510, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1521, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":1511
+ /* "lxml/etree.pyx":1522
* """
* _assertValidDoc(self._doc)
* return _makeElement(_tag, NULL, self._doc, None, None, None, # <<<<<<<<<<<<<<
__pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
__Pyx_INCREF(__pyx_t_1);
- /* "lxml/etree.pyx":1512
+ /* "lxml/etree.pyx":1523
* _assertValidDoc(self._doc)
* return _makeElement(_tag, NULL, self._doc, None, None, None,
* attrib, nsmap, _extra) # <<<<<<<<<<<<<<
*
* def find(self, path, namespaces=None):
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)__pyx_t_1), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1511, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)__pyx_t_1), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1522, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1505
+ /* "lxml/etree.pyx":1516
* return ElementTextIterator(self, tags, with_tail=with_tail)
*
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1514
+/* "lxml/etree.pyx":1525
* attrib, nsmap, _extra)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) __PYX_ERR(0, 1514, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) __PYX_ERR(0, 1525, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1514, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1525, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Element.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("find", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":1523
+ /* "lxml/etree.pyx":1534
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1524
+ /* "lxml/etree.pyx":1535
* """
* if isinstance(path, QName):
* path = (<QName>path).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1523
+ /* "lxml/etree.pyx":1534
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1525
+ /* "lxml/etree.pyx":1536
* if isinstance(path, QName):
* path = (<QName>path).text
* return _elementpath.find(self, path, namespaces) # <<<<<<<<<<<<<<
* def findtext(self, path, default=None, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_find); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1525, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_find); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1525, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_namespaces);
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1514
+ /* "lxml/etree.pyx":1525
* attrib, nsmap, _extra)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1527
+/* "lxml/etree.pyx":1538
* return _elementpath.find(self, path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) __PYX_ERR(0, 1527, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) __PYX_ERR(0, 1538, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1527, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1538, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Element.findtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("findtext", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":1536
+ /* "lxml/etree.pyx":1547
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1537
+ /* "lxml/etree.pyx":1548
* """
* if isinstance(path, QName):
* path = (<QName>path).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1536
+ /* "lxml/etree.pyx":1547
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1538
+ /* "lxml/etree.pyx":1549
* if isinstance(path, QName):
* path = (<QName>path).text
* return _elementpath.findtext(self, path, default, namespaces) # <<<<<<<<<<<<<<
* def findall(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_findtext); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1538, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_findtext); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1549, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[5] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_default, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1538, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1549, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[5] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_default, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1538, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1549, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1538, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1549, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_namespaces);
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1538, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1549, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1527
+ /* "lxml/etree.pyx":1538
* return _elementpath.find(self, path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1540
+/* "lxml/etree.pyx":1551
* return _elementpath.findtext(self, path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) __PYX_ERR(0, 1540, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) __PYX_ERR(0, 1551, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1540, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1551, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Element.findall", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("findall", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":1549
+ /* "lxml/etree.pyx":1560
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1550
+ /* "lxml/etree.pyx":1561
* """
* if isinstance(path, QName):
* path = (<QName>path).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1549
+ /* "lxml/etree.pyx":1560
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1551
+ /* "lxml/etree.pyx":1562
* if isinstance(path, QName):
* path = (<QName>path).text
* return _elementpath.findall(self, path, namespaces) # <<<<<<<<<<<<<<
* def iterfind(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_findall); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1551, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_findall); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1551, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1562, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1551, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1562, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1551, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_namespaces);
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1551, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1540
+ /* "lxml/etree.pyx":1551
* return _elementpath.findtext(self, path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1553
+/* "lxml/etree.pyx":1564
* return _elementpath.findall(self, path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) __PYX_ERR(0, 1553, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) __PYX_ERR(0, 1564, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1553, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1564, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Element.iterfind", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("iterfind", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":1562
+ /* "lxml/etree.pyx":1573
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1563
+ /* "lxml/etree.pyx":1574
* """
* if isinstance(path, QName):
* path = (<QName>path).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1562
+ /* "lxml/etree.pyx":1573
* prefixes in the path expression.
* """
* if isinstance(path, QName): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1564
+ /* "lxml/etree.pyx":1575
* if isinstance(path, QName):
* path = (<QName>path).text
* return _elementpath.iterfind(self, path, namespaces) # <<<<<<<<<<<<<<
* def xpath(self, _path, *, namespaces=None, extensions=None,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_iterfind); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1564, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s_iterfind); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1564, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1564, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_3);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1564, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_namespaces);
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1564, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1553
+ /* "lxml/etree.pyx":1564
* return _elementpath.findall(self, path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1566
+/* "lxml/etree.pyx":1577
* return _elementpath.iterfind(self, path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- /* "lxml/etree.pyx":1567
+ /* "lxml/etree.pyx":1578
*
* def xpath(self, _path, *, namespaces=None, extensions=None,
* smart_strings=True, **_variables): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) __PYX_ERR(0, 1566, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) __PYX_ERR(0, 1577, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1566, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1577, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
__Pyx_AddTraceback("lxml.etree._Element.xpath", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_8_Element_88xpath(((struct LxmlElement *)__pyx_v_self), __pyx_v__path, __pyx_v_namespaces, __pyx_v_extensions, __pyx_v_smart_strings, __pyx_v__variables);
- /* "lxml/etree.pyx":1566
+ /* "lxml/etree.pyx":1577
* return _elementpath.iterfind(self, path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("xpath", 0);
- /* "lxml/etree.pyx":1572
+ /* "lxml/etree.pyx":1583
* Evaluate an xpath expression using the element as context node.
* """
* evaluator = XPathElementEvaluator(self, namespaces=namespaces, # <<<<<<<<<<<<<<
* extensions=extensions,
* smart_strings=smart_strings)
*/
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
- __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1572, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_namespaces, __pyx_v_namespaces) < 0) __PYX_ERR(0, 1572, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_namespaces, __pyx_v_namespaces) < 0) __PYX_ERR(0, 1583, __pyx_L1_error)
- /* "lxml/etree.pyx":1573
+ /* "lxml/etree.pyx":1584
* """
* evaluator = XPathElementEvaluator(self, namespaces=namespaces,
* extensions=extensions, # <<<<<<<<<<<<<<
* smart_strings=smart_strings)
* return evaluator(_path, **_variables)
*/
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 1572, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 1583, __pyx_L1_error)
- /* "lxml/etree.pyx":1574
+ /* "lxml/etree.pyx":1585
* evaluator = XPathElementEvaluator(self, namespaces=namespaces,
* extensions=extensions,
* smart_strings=smart_strings) # <<<<<<<<<<<<<<
* return evaluator(_path, **_variables)
*
*/
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_smart_strings, __pyx_v_smart_strings) < 0) __PYX_ERR(0, 1572, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_smart_strings, __pyx_v_smart_strings) < 0) __PYX_ERR(0, 1583, __pyx_L1_error)
- /* "lxml/etree.pyx":1572
+ /* "lxml/etree.pyx":1583
* Evaluate an xpath expression using the element as context node.
* """
* evaluator = XPathElementEvaluator(self, namespaces=namespaces, # <<<<<<<<<<<<<<
* extensions=extensions,
* smart_strings=smart_strings)
*/
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XPathElementEvaluator), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1572, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XPathElementEvaluator), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1583, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_evaluator = ((struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1575
+ /* "lxml/etree.pyx":1586
* extensions=extensions,
* smart_strings=smart_strings)
* return evaluator(_path, **_variables) # <<<<<<<<<<<<<<
* def cssselect(self, expr, *, translator='xml'):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v__path);
__Pyx_GIVEREF(__pyx_v__path);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__path);
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_evaluator), __pyx_t_3, __pyx_v__variables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1575, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_evaluator), __pyx_t_3, __pyx_v__variables); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1566
+ /* "lxml/etree.pyx":1577
* return _elementpath.iterfind(self, path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1577
+/* "lxml/etree.pyx":1588
* return evaluator(_path, **_variables)
*
* def cssselect(self, expr, *, translator='xml'): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cssselect") < 0)) __PYX_ERR(0, 1577, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cssselect") < 0)) __PYX_ERR(0, 1588, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("cssselect", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1577, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("cssselect", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1588, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Element.cssselect", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("cssselect", 0);
- /* "lxml/etree.pyx":1587
+ /* "lxml/etree.pyx":1598
* """
* # Do the import here to make the dependency optional.
* from lxml.cssselect import CSSSelector # <<<<<<<<<<<<<<
* return CSSSelector(expr, translator=translator)(self)
*
*/
- __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_n_s_CSSSelector);
__Pyx_GIVEREF(__pyx_n_s_CSSSelector);
PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CSSSelector);
- __pyx_t_2 = __Pyx_Import(__pyx_n_s_lxml_cssselect, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1587, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Import(__pyx_n_s_lxml_cssselect, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CSSSelector); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1587, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_CSSSelector); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_CSSSelector = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":1588
+ /* "lxml/etree.pyx":1599
* # Do the import here to make the dependency optional.
* from lxml.cssselect import CSSSelector
* return CSSSelector(expr, translator=translator)(self) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_expr);
__Pyx_GIVEREF(__pyx_v_expr);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_expr);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1588, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_translator, __pyx_v_translator) < 0) __PYX_ERR(0, 1588, __pyx_L1_error)
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_CSSSelector, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1588, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_translator, __pyx_v_translator) < 0) __PYX_ERR(0, 1599, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_CSSSelector, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_self));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1588, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1577
+ /* "lxml/etree.pyx":1588
* return evaluator(_path, **_variables)
*
* def cssselect(self, expr, *, translator='xml'): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1597
+/* "lxml/etree.pyx":1608
*
* @cython.linetrace(False)
* cdef _Element _elementFactory(_Document doc, xmlNode* c_node): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("_elementFactory", 0);
- /* "lxml/etree.pyx":1599
+ /* "lxml/etree.pyx":1610
* cdef _Element _elementFactory(_Document doc, xmlNode* c_node):
* cdef _Element result
* result = getProxy(c_node) # <<<<<<<<<<<<<<
* if result is not None:
* return result
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1599, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_result = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":1600
+ /* "lxml/etree.pyx":1611
* cdef _Element result
* result = getProxy(c_node)
* if result is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1601
+ /* "lxml/etree.pyx":1612
* result = getProxy(c_node)
* if result is not None:
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":1600
+ /* "lxml/etree.pyx":1611
* cdef _Element result
* result = getProxy(c_node)
* if result is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1602
+ /* "lxml/etree.pyx":1613
* if result is not None:
* return result
* if c_node is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1603
+ /* "lxml/etree.pyx":1614
* return result
* if c_node is NULL:
* return None # <<<<<<<<<<<<<<
__pyx_r = ((struct LxmlElement *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":1602
+ /* "lxml/etree.pyx":1613
* if result is not None:
* return result
* if c_node is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1606
+ /* "lxml/etree.pyx":1617
*
* element_class = LOOKUP_ELEMENT_CLASS(
* ELEMENT_CLASS_LOOKUP_STATE, doc, c_node) # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE;
__Pyx_INCREF(__pyx_t_1);
- /* "lxml/etree.pyx":1605
+ /* "lxml/etree.pyx":1616
* return None
*
* element_class = LOOKUP_ELEMENT_CLASS( # <<<<<<<<<<<<<<
* ELEMENT_CLASS_LOOKUP_STATE, doc, c_node)
* if hasProxy(c_node):
*/
- __pyx_t_4 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1605, __pyx_L1_error)
+ __pyx_t_4 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_element_class = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1607
+ /* "lxml/etree.pyx":1618
* element_class = LOOKUP_ELEMENT_CLASS(
* ELEMENT_CLASS_LOOKUP_STATE, doc, c_node)
* if hasProxy(c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1609
+ /* "lxml/etree.pyx":1620
* if hasProxy(c_node):
* # prevent re-entry race condition - we just called into Python
* return getProxy(c_node) # <<<<<<<<<<<<<<
* if hasProxy(c_node):
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1609, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1607
+ /* "lxml/etree.pyx":1618
* element_class = LOOKUP_ELEMENT_CLASS(
* ELEMENT_CLASS_LOOKUP_STATE, doc, c_node)
* if hasProxy(c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1610
+ /* "lxml/etree.pyx":1621
* # prevent re-entry race condition - we just called into Python
* return getProxy(c_node)
* result = NEW_ELEMENT(element_class) # <<<<<<<<<<<<<<
* if hasProxy(c_node):
* # prevent re-entry race condition - we just called into Python
*/
- __pyx_t_4 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1610, __pyx_L1_error)
+ __pyx_t_4 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1621, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1610, __pyx_L1_error)
+ if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1621, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_result, ((struct LxmlElement *)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1611
+ /* "lxml/etree.pyx":1622
* return getProxy(c_node)
* result = NEW_ELEMENT(element_class)
* if hasProxy(c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1613
+ /* "lxml/etree.pyx":1624
* if hasProxy(c_node):
* # prevent re-entry race condition - we just called into Python
* result._c_node = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_result->_c_node = NULL;
- /* "lxml/etree.pyx":1614
+ /* "lxml/etree.pyx":1625
* # prevent re-entry race condition - we just called into Python
* result._c_node = NULL
* return getProxy(c_node) # <<<<<<<<<<<<<<
* _registerProxy(result, doc, c_node)
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1614, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1625, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1611
+ /* "lxml/etree.pyx":1622
* return getProxy(c_node)
* result = NEW_ELEMENT(element_class)
* if hasProxy(c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1616
+ /* "lxml/etree.pyx":1627
* return getProxy(c_node)
*
* _registerProxy(result, doc, c_node) # <<<<<<<<<<<<<<
* if element_class is not _Element:
* result._init()
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1616, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1627, __pyx_L1_error)
- /* "lxml/etree.pyx":1617
+ /* "lxml/etree.pyx":1628
*
* _registerProxy(result, doc, c_node)
* if element_class is not _Element: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1618
+ /* "lxml/etree.pyx":1629
* _registerProxy(result, doc, c_node)
* if element_class is not _Element:
* result._init() # <<<<<<<<<<<<<<
* return result
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_init_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1618, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_init_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1629, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1618, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1629, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":1617
+ /* "lxml/etree.pyx":1628
*
* _registerProxy(result, doc, c_node)
* if element_class is not _Element: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1619
+ /* "lxml/etree.pyx":1630
* if element_class is not _Element:
* result._init()
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":1597
+ /* "lxml/etree.pyx":1608
*
* @cython.linetrace(False)
* cdef _Element _elementFactory(_Document doc, xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1624
+/* "lxml/etree.pyx":1635
* @cython.internal
* cdef class __ContentOnlyElement(_Element):
* cdef int _raiseImmutable(self) except -1: # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_raiseImmutable", 0);
- /* "lxml/etree.pyx":1625
+ /* "lxml/etree.pyx":1636
* cdef class __ContentOnlyElement(_Element):
* cdef int _raiseImmutable(self) except -1:
* raise TypeError, u"this element does not have children or attributes" # <<<<<<<<<<<<<<
* def set(self, key, value):
*/
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_this_element_does_not_have_child, 0, 0);
- __PYX_ERR(0, 1625, __pyx_L1_error)
+ __PYX_ERR(0, 1636, __pyx_L1_error)
- /* "lxml/etree.pyx":1624
+ /* "lxml/etree.pyx":1635
* @cython.internal
* cdef class __ContentOnlyElement(_Element):
* cdef int _raiseImmutable(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1627
+/* "lxml/etree.pyx":1638
* raise TypeError, u"this element does not have children or attributes"
*
* def set(self, key, value): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); __PYX_ERR(0, 1627, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); __PYX_ERR(0, 1638, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(0, 1627, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(0, 1638, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1627, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1638, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.set", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
int __pyx_t_1;
__Pyx_RefNannySetupContext("set", 0);
- /* "lxml/etree.pyx":1629
+ /* "lxml/etree.pyx":1640
* def set(self, key, value):
* u"set(self, key, value)"
* self._raiseImmutable() # <<<<<<<<<<<<<<
*
* def append(self, value):
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1629, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1640, __pyx_L1_error)
- /* "lxml/etree.pyx":1627
+ /* "lxml/etree.pyx":1638
* raise TypeError, u"this element does not have children or attributes"
*
* def set(self, key, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1631
+/* "lxml/etree.pyx":1642
* self._raiseImmutable()
*
* def append(self, value): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("append", 0);
- /* "lxml/etree.pyx":1633
+ /* "lxml/etree.pyx":1644
* def append(self, value):
* u"append(self, value)"
* self._raiseImmutable() # <<<<<<<<<<<<<<
*
* def insert(self, index, value):
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1633, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1644, __pyx_L1_error)
- /* "lxml/etree.pyx":1631
+ /* "lxml/etree.pyx":1642
* self._raiseImmutable()
*
* def append(self, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1635
+/* "lxml/etree.pyx":1646
* self._raiseImmutable()
*
* def insert(self, index, value): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); __PYX_ERR(0, 1635, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); __PYX_ERR(0, 1646, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) __PYX_ERR(0, 1635, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) __PYX_ERR(0, 1646, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1635, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1646, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
int __pyx_t_1;
__Pyx_RefNannySetupContext("insert", 0);
- /* "lxml/etree.pyx":1637
+ /* "lxml/etree.pyx":1648
* def insert(self, index, value):
* u"insert(self, index, value)"
* self._raiseImmutable() # <<<<<<<<<<<<<<
*
* def __setitem__(self, index, value):
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1637, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1648, __pyx_L1_error)
- /* "lxml/etree.pyx":1635
+ /* "lxml/etree.pyx":1646
* self._raiseImmutable()
*
* def insert(self, index, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1639
+/* "lxml/etree.pyx":1650
* self._raiseImmutable()
*
* def __setitem__(self, index, value): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("__setitem__", 0);
- /* "lxml/etree.pyx":1641
+ /* "lxml/etree.pyx":1652
* def __setitem__(self, index, value):
* u"__setitem__(self, index, value)"
* self._raiseImmutable() # <<<<<<<<<<<<<<
*
- * property attrib:
+ * @property
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1641, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1652, __pyx_L1_error)
- /* "lxml/etree.pyx":1639
+ /* "lxml/etree.pyx":1650
* self._raiseImmutable()
*
* def __setitem__(self, index, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1644
+/* "lxml/etree.pyx":1655
*
- * property attrib:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return IMMUTABLE_EMPTY_MAPPING
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * return IMMUTABLE_EMPTY_MAPPING
*
*/
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1645
- * property attrib:
- * def __get__(self):
- * return IMMUTABLE_EMPTY_MAPPING # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1656
+ * @property
+ * def attrib(self):
+ * return IMMUTABLE_EMPTY_MAPPING # <<<<<<<<<<<<<<
*
* property text:
*/
__pyx_r = __pyx_v_4lxml_5etree_IMMUTABLE_EMPTY_MAPPING;
goto __pyx_L0;
- /* "lxml/etree.pyx":1644
+ /* "lxml/etree.pyx":1655
*
- * property attrib:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return IMMUTABLE_EMPTY_MAPPING
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * return IMMUTABLE_EMPTY_MAPPING
*
*/
return __pyx_r;
}
-/* "lxml/etree.pyx":1648
+/* "lxml/etree.pyx":1659
*
* property text:
* def __get__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1649
+ /* "lxml/etree.pyx":1660
* property text:
* def __get__(self):
* _assertValidNode(self) # <<<<<<<<<<<<<<
* return funicodeOrEmpty(self._c_node.content)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1649, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1660, __pyx_L1_error)
- /* "lxml/etree.pyx":1650
+ /* "lxml/etree.pyx":1661
* def __get__(self):
* _assertValidNode(self)
* return funicodeOrEmpty(self._c_node.content) # <<<<<<<<<<<<<<
* def __set__(self, value):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_self->__pyx_base._c_node->content); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1650, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_self->__pyx_base._c_node->content); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1661, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1648
+ /* "lxml/etree.pyx":1659
*
* property text:
* def __get__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1652
+/* "lxml/etree.pyx":1663
* return funicodeOrEmpty(self._c_node.content)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__set__", 0);
__Pyx_INCREF(__pyx_v_value);
- /* "lxml/etree.pyx":1654
+ /* "lxml/etree.pyx":1665
* def __set__(self, value):
* cdef tree.xmlDict* c_dict
* _assertValidNode(self) # <<<<<<<<<<<<<<
* if value is None:
* c_text = <const_xmlChar*>NULL
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1654, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1665, __pyx_L1_error)
- /* "lxml/etree.pyx":1655
+ /* "lxml/etree.pyx":1666
* cdef tree.xmlDict* c_dict
* _assertValidNode(self)
* if value is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1656
+ /* "lxml/etree.pyx":1667
* _assertValidNode(self)
* if value is None:
* c_text = <const_xmlChar*>NULL # <<<<<<<<<<<<<<
*/
__pyx_v_c_text = ((const xmlChar *)NULL);
- /* "lxml/etree.pyx":1655
+ /* "lxml/etree.pyx":1666
* cdef tree.xmlDict* c_dict
* _assertValidNode(self)
* if value is None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":1658
+ /* "lxml/etree.pyx":1669
* c_text = <const_xmlChar*>NULL
* else:
* value = _utf8(value) # <<<<<<<<<<<<<<
* tree.xmlNodeSetContent(self._c_node, c_text)
*/
/*else*/ {
- __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1658, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1669, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1659
+ /* "lxml/etree.pyx":1670
* else:
* value = _utf8(value)
* c_text = _xcstr(value) # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":1660
+ /* "lxml/etree.pyx":1671
* value = _utf8(value)
* c_text = _xcstr(value)
* tree.xmlNodeSetContent(self._c_node, c_text) # <<<<<<<<<<<<<<
*/
xmlNodeSetContent(__pyx_v_self->__pyx_base._c_node, __pyx_v_c_text);
- /* "lxml/etree.pyx":1652
+ /* "lxml/etree.pyx":1663
* return funicodeOrEmpty(self._c_node.content)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1663
+/* "lxml/etree.pyx":1674
*
* # ACCESSORS
* def __getitem__(self, x): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__getitem__", 0);
- /* "lxml/etree.pyx":1665
+ /* "lxml/etree.pyx":1676
* def __getitem__(self, x):
* u"__getitem__(self, x)"
* if isinstance(x, slice): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (likely(__pyx_t_2)) {
- /* "lxml/etree.pyx":1666
+ /* "lxml/etree.pyx":1677
* u"__getitem__(self, x)"
* if isinstance(x, slice):
* return [] # <<<<<<<<<<<<<<
* raise IndexError, u"list index out of range"
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1666, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1665
+ /* "lxml/etree.pyx":1676
* def __getitem__(self, x):
* u"__getitem__(self, x)"
* if isinstance(x, slice): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1668
+ /* "lxml/etree.pyx":1679
* return []
* else:
* raise IndexError, u"list index out of range" # <<<<<<<<<<<<<<
*/
/*else*/ {
__Pyx_Raise(__pyx_builtin_IndexError, __pyx_kp_u_list_index_out_of_range, 0, 0);
- __PYX_ERR(0, 1668, __pyx_L1_error)
+ __PYX_ERR(0, 1679, __pyx_L1_error)
}
- /* "lxml/etree.pyx":1663
+ /* "lxml/etree.pyx":1674
*
* # ACCESSORS
* def __getitem__(self, x): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1670
+/* "lxml/etree.pyx":1681
* raise IndexError, u"list index out of range"
*
* def __len__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__len__", 0);
- /* "lxml/etree.pyx":1672
+ /* "lxml/etree.pyx":1683
* def __len__(self):
* u"__len__(self)"
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1670
+ /* "lxml/etree.pyx":1681
* raise IndexError, u"list index out of range"
*
* def __len__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1674
+/* "lxml/etree.pyx":1685
* return 0
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 1674, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 1685, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1674, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1685, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get", 0);
- /* "lxml/etree.pyx":1676
+ /* "lxml/etree.pyx":1687
* def get(self, key, default=None):
* u"get(self, key, default=None)"
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":1674
+ /* "lxml/etree.pyx":1685
* return 0
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1678
+/* "lxml/etree.pyx":1689
* return None
*
* def keys(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("keys", 0);
- /* "lxml/etree.pyx":1680
+ /* "lxml/etree.pyx":1691
* def keys(self):
* u"keys(self)"
* return [] # <<<<<<<<<<<<<<
* def items(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1680, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1691, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1678
+ /* "lxml/etree.pyx":1689
* return None
*
* def keys(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1682
+/* "lxml/etree.pyx":1693
* return []
*
* def items(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("items", 0);
- /* "lxml/etree.pyx":1684
+ /* "lxml/etree.pyx":1695
* def items(self):
* u"items(self)"
* return [] # <<<<<<<<<<<<<<
* def values(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1695, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1682
+ /* "lxml/etree.pyx":1693
* return []
*
* def items(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1686
+/* "lxml/etree.pyx":1697
* return []
*
* def values(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("values", 0);
- /* "lxml/etree.pyx":1688
+ /* "lxml/etree.pyx":1699
* def values(self):
* u"values(self)"
* return [] # <<<<<<<<<<<<<<
* cdef class _Comment(__ContentOnlyElement):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1688, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1699, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1686
+ /* "lxml/etree.pyx":1697
* return []
*
* def values(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1692
+/* "lxml/etree.pyx":1703
* cdef class _Comment(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return Comment
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return Comment
*
*/
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1693
- * property tag:
- * def __get__(self):
- * return Comment # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1704
+ * @property
+ * def tag(self):
+ * return Comment # <<<<<<<<<<<<<<
*
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Comment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Comment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1692
+ /* "lxml/etree.pyx":1703
* cdef class _Comment(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return Comment
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return Comment
*
*/
return __pyx_r;
}
-/* "lxml/etree.pyx":1695
- * return Comment
+/* "lxml/etree.pyx":1706
+ * return Comment
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return "<!--%s-->" % strrepr(self.text)
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/etree.pyx":1696
+ /* "lxml/etree.pyx":1707
*
* def __repr__(self):
* return "<!--%s-->" % strrepr(self.text) # <<<<<<<<<<<<<<
* cdef class _ProcessingInstruction(__ContentOnlyElement):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1696, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1696, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1696, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1695
- * return Comment
+ /* "lxml/etree.pyx":1706
+ * return Comment
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return "<!--%s-->" % strrepr(self.text)
return __pyx_r;
}
-/* "lxml/etree.pyx":1700
+/* "lxml/etree.pyx":1711
* cdef class _ProcessingInstruction(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ProcessingInstruction
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return ProcessingInstruction
*
*/
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1701
- * property tag:
- * def __get__(self):
- * return ProcessingInstruction # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1712
+ * @property
+ * def tag(self):
+ * return ProcessingInstruction # <<<<<<<<<<<<<<
*
* property target:
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1701, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1700
+ /* "lxml/etree.pyx":1711
* cdef class _ProcessingInstruction(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return ProcessingInstruction
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return ProcessingInstruction
*
*/
return __pyx_r;
}
-/* "lxml/etree.pyx":1705
+/* "lxml/etree.pyx":1716
* property target:
* # not in ElementTree
* def __get__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1706
+ /* "lxml/etree.pyx":1717
* # not in ElementTree
* def __get__(self):
* _assertValidNode(self) # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1706, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1717, __pyx_L1_error)
- /* "lxml/etree.pyx":1707
+ /* "lxml/etree.pyx":1718
* def __get__(self):
* _assertValidNode(self)
* return funicode(self._c_node.name) # <<<<<<<<<<<<<<
* def __set__(self, value):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1707, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1705
+ /* "lxml/etree.pyx":1716
* property target:
* # not in ElementTree
* def __get__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1709
+/* "lxml/etree.pyx":1720
* return funicode(self._c_node.name)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__set__", 0);
__Pyx_INCREF(__pyx_v_value);
- /* "lxml/etree.pyx":1710
+ /* "lxml/etree.pyx":1721
*
* def __set__(self, value):
* _assertValidNode(self) # <<<<<<<<<<<<<<
* value = _utf8(value)
* c_text = _xcstr(value)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1710, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1721, __pyx_L1_error)
- /* "lxml/etree.pyx":1711
+ /* "lxml/etree.pyx":1722
* def __set__(self, value):
* _assertValidNode(self)
* value = _utf8(value) # <<<<<<<<<<<<<<
* c_text = _xcstr(value)
* tree.xmlNodeSetName(self._c_node, c_text)
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1711, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1722, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":1712
+ /* "lxml/etree.pyx":1723
* _assertValidNode(self)
* value = _utf8(value)
* c_text = _xcstr(value) # <<<<<<<<<<<<<<
*/
__pyx_v_c_text = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value);
- /* "lxml/etree.pyx":1713
+ /* "lxml/etree.pyx":1724
* value = _utf8(value)
* c_text = _xcstr(value)
* tree.xmlNodeSetName(self._c_node, c_text) # <<<<<<<<<<<<<<
*/
xmlNodeSetName(__pyx_v_self->__pyx_base.__pyx_base._c_node, __pyx_v_c_text);
- /* "lxml/etree.pyx":1709
+ /* "lxml/etree.pyx":1720
* return funicode(self._c_node.name)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1715
+/* "lxml/etree.pyx":1726
* tree.xmlNodeSetName(self._c_node, c_text)
*
* def __repr__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/etree.pyx":1716
+ /* "lxml/etree.pyx":1727
*
* def __repr__(self):
* text = self.text # <<<<<<<<<<<<<<
* if text:
* return "<?%s %s?>" % (strrepr(self.target),
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1716, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1727, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_text = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":1717
+ /* "lxml/etree.pyx":1728
* def __repr__(self):
* text = self.text
* if text: # <<<<<<<<<<<<<<
* return "<?%s %s?>" % (strrepr(self.target),
* strrepr(text))
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_text); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1717, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_text); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1728, __pyx_L1_error)
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1718
+ /* "lxml/etree.pyx":1729
* text = self.text
* if text:
* return "<?%s %s?>" % (strrepr(self.target), # <<<<<<<<<<<<<<
* else:
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1718, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1718, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":1719
+ /* "lxml/etree.pyx":1730
* if text:
* return "<?%s %s?>" % (strrepr(self.target),
* strrepr(text)) # <<<<<<<<<<<<<<
* else:
* return "<?%s?>" % strrepr(self.target)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_strrepr(__pyx_v_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1719, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_strrepr(__pyx_v_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "lxml/etree.pyx":1718
+ /* "lxml/etree.pyx":1729
* text = self.text
* if text:
* return "<?%s %s?>" % (strrepr(self.target), # <<<<<<<<<<<<<<
* strrepr(text))
* else:
*/
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1718, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__pyx_t_3 = 0;
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1718, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1729, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1717
+ /* "lxml/etree.pyx":1728
* def __repr__(self):
* text = self.text
* if text: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1721
+ /* "lxml/etree.pyx":1732
* strrepr(text))
* else:
* return "<?%s?>" % strrepr(self.target) # <<<<<<<<<<<<<<
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1721, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1721, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1721, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_1;
goto __pyx_L0;
}
- /* "lxml/etree.pyx":1715
+ /* "lxml/etree.pyx":1726
* tree.xmlNodeSetName(self._c_node, c_text)
*
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1723
+/* "lxml/etree.pyx":1734
* return "<?%s?>" % strrepr(self.target)
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 1723, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 1734, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1723, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1734, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ProcessingInstruction.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("get", 0);
- /* "lxml/etree.pyx":1735
+ /* "lxml/etree.pyx":1746
* It is not guaranteed to work for all possible text content.
* """
* return self.attrib.get(key, default) # <<<<<<<<<<<<<<
*
- * property attrib:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attrib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_attrib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_key, __pyx_v_default};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_key, __pyx_v_default};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#endif
{
- __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (__pyx_t_2) {
__Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_default);
__Pyx_GIVEREF(__pyx_v_default);
PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_default);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1735, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1723
+ /* "lxml/etree.pyx":1734
* return "<?%s?>" % strrepr(self.target)
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1743
- * XML node, although this is not guaranteed to stay this way.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return { attr : (value1 or value2)
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+/* "lxml/etree.pyx":1749
+ *
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * """Returns a dict containing all pseudo-attributes that can be
+ * parsed from the text content of this processing instruction.
*/
/* Python wrapper */
int __pyx_t_11;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1744
+ /* "lxml/etree.pyx":1755
+ * XML node, although this is not guaranteed to stay this way.
* """
- * def __get__(self):
- * return { attr : (value1 or value2) # <<<<<<<<<<<<<<
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+ * return { attr : (value1 or value2) # <<<<<<<<<<<<<<
+ * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
*
*/
__Pyx_XDECREF(__pyx_r);
{ /* enter inner scope */
- __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L5_error)
+ __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1755, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "lxml/etree.pyx":1745
- * def __get__(self):
- * return { attr : (value1 or value2)
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) } # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1756
+ * """
+ * return { attr : (value1 or value2)
+ * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) } # <<<<<<<<<<<<<<
*
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Add(__pyx_kp_u__10, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_4 = PyNumber_Add(__pyx_kp_u__10, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_INCREF(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES);
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1756, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1756, __pyx_L5_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1756, __pyx_L5_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1745, __pyx_L5_error)
+ else __PYX_ERR(0, 1756, __pyx_L5_error)
}
break;
}
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1745, __pyx_L5_error)
+ __PYX_ERR(0, 1756, __pyx_L5_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx_t_8);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1745, __pyx_L5_error)
+ __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1756, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
__Pyx_GOTREF(__pyx_t_5);
index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;
__Pyx_GOTREF(__pyx_t_8);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 1745, __pyx_L5_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 1756, __pyx_L5_error)
__pyx_t_10 = NULL;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L9_unpacking_done;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1745, __pyx_L5_error)
+ __PYX_ERR(0, 1756, __pyx_L5_error)
__pyx_L9_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_attr, __pyx_t_4);
__Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_value2, __pyx_t_8);
__pyx_t_8 = 0;
- /* "lxml/etree.pyx":1744
+ /* "lxml/etree.pyx":1755
+ * XML node, although this is not guaranteed to stay this way.
* """
- * def __get__(self):
- * return { attr : (value1 or value2) # <<<<<<<<<<<<<<
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+ * return { attr : (value1 or value2) # <<<<<<<<<<<<<<
+ * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
*
*/
- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_7genexpr__pyx_v_value1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1744, __pyx_L5_error)
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_7genexpr__pyx_v_value1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1755, __pyx_L5_error)
if (!__pyx_t_11) {
} else {
__Pyx_INCREF(__pyx_7genexpr__pyx_v_value1);
__Pyx_INCREF(__pyx_7genexpr__pyx_v_value2);
__pyx_t_2 = __pyx_7genexpr__pyx_v_value2;
__pyx_L10_bool_binop_done:;
- if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_attr, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 1744, __pyx_L5_error)
+ if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_attr, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 1755, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":1745
- * def __get__(self):
- * return { attr : (value1 or value2)
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) } # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1756
+ * """
+ * return { attr : (value1 or value2)
+ * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) } # <<<<<<<<<<<<<<
*
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1743
- * XML node, although this is not guaranteed to stay this way.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return { attr : (value1 or value2)
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+ /* "lxml/etree.pyx":1749
+ *
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * """Returns a dict containing all pseudo-attributes that can be
+ * parsed from the text content of this processing instruction.
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1751
+/* "lxml/etree.pyx":1762
* cdef class _Entity(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return Entity
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return Entity
*
*/
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1752
- * property tag:
- * def __get__(self):
- * return Entity # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1763
+ * @property
+ * def tag(self):
+ * return Entity # <<<<<<<<<<<<<<
*
* property name:
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Entity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1752, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Entity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1763, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1751
+ /* "lxml/etree.pyx":1762
* cdef class _Entity(__ContentOnlyElement):
- * property tag:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return Entity
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * return Entity
*
*/
return __pyx_r;
}
-/* "lxml/etree.pyx":1756
+/* "lxml/etree.pyx":1767
* property name:
* # not in ElementTree
* def __get__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1757
+ /* "lxml/etree.pyx":1768
* # not in ElementTree
* def __get__(self):
* _assertValidNode(self) # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1757, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1768, __pyx_L1_error)
- /* "lxml/etree.pyx":1758
+ /* "lxml/etree.pyx":1769
* def __get__(self):
* _assertValidNode(self)
* return funicode(self._c_node.name) # <<<<<<<<<<<<<<
* def __set__(self, value):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1758, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1756
+ /* "lxml/etree.pyx":1767
* property name:
* # not in ElementTree
* def __get__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1760
+/* "lxml/etree.pyx":1771
* return funicode(self._c_node.name)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
PyObject *__pyx_t_8 = NULL;
__Pyx_RefNannySetupContext("__set__", 0);
- /* "lxml/etree.pyx":1761
+ /* "lxml/etree.pyx":1772
*
* def __set__(self, value):
* _assertValidNode(self) # <<<<<<<<<<<<<<
* value_utf = _utf8(value)
* if b'&' in value_utf or b';' in value_utf:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1761, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1772, __pyx_L1_error)
- /* "lxml/etree.pyx":1762
+ /* "lxml/etree.pyx":1773
* def __set__(self, value):
* _assertValidNode(self)
* value_utf = _utf8(value) # <<<<<<<<<<<<<<
* if b'&' in value_utf or b';' in value_utf:
* raise ValueError, f"Invalid entity name '{value}'"
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1762, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__utf8(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1773, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_value_utf = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":1763
+ /* "lxml/etree.pyx":1774
* _assertValidNode(self)
* value_utf = _utf8(value)
* if b'&' in value_utf or b';' in value_utf: # <<<<<<<<<<<<<<
* raise ValueError, f"Invalid entity name '{value}'"
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*/
- __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__28, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1763, __pyx_L1_error)
+ __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__28, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1774, __pyx_L1_error)
__pyx_t_5 = (__pyx_t_4 != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__29, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1763, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__29, __pyx_v_value_utf, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1774, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_5 != 0);
__pyx_t_3 = __pyx_t_4;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":1764
+ /* "lxml/etree.pyx":1775
* value_utf = _utf8(value)
* if b'&' in value_utf or b';' in value_utf:
* raise ValueError, f"Invalid entity name '{value}'" # <<<<<<<<<<<<<<
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
*
*/
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1764, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = 0;
__pyx_t_7 = 127;
__pyx_t_6 += 21;
__Pyx_GIVEREF(__pyx_kp_u_Invalid_entity_name);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u_Invalid_entity_name);
- __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1764, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_7;
__pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8);
__pyx_t_6 += 1;
__Pyx_GIVEREF(__pyx_kp_u__21);
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__21);
- __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1764, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_8, 0, 0);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __PYX_ERR(0, 1764, __pyx_L1_error)
+ __PYX_ERR(0, 1775, __pyx_L1_error)
- /* "lxml/etree.pyx":1763
+ /* "lxml/etree.pyx":1774
* _assertValidNode(self)
* value_utf = _utf8(value)
* if b'&' in value_utf or b';' in value_utf: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1765
+ /* "lxml/etree.pyx":1776
* if b'&' in value_utf or b';' in value_utf:
* raise ValueError, f"Invalid entity name '{value}'"
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf)) # <<<<<<<<<<<<<<
*
- * property text:
+ * @property
*/
xmlNodeSetName(__pyx_v_self->__pyx_base.__pyx_base._c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value_utf));
- /* "lxml/etree.pyx":1760
+ /* "lxml/etree.pyx":1771
* return funicode(self._c_node.name)
*
* def __set__(self, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1770
+/* "lxml/etree.pyx":1779
+ *
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
* # FIXME: should this be None or '&[VALUE];' or the resolved
* # entity value ?
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidNode(self)
- * return f'&{funicode(self._c_node.name)};'
*/
/* Python wrapper */
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1771
+ /* "lxml/etree.pyx":1782
+ * # FIXME: should this be None or '&[VALUE];' or the resolved
* # entity value ?
- * def __get__(self):
- * _assertValidNode(self) # <<<<<<<<<<<<<<
- * return f'&{funicode(self._c_node.name)};'
+ * _assertValidNode(self) # <<<<<<<<<<<<<<
+ * return f'&{funicode(self._c_node.name)};'
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1771, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1782, __pyx_L1_error)
- /* "lxml/etree.pyx":1772
- * def __get__(self):
- * _assertValidNode(self)
- * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1783
+ * # entity value ?
+ * _assertValidNode(self)
+ * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
*
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1772, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = 0;
__pyx_t_4 = 127;
__pyx_t_3 += 1;
__Pyx_GIVEREF(__pyx_kp_u__28);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_kp_u__28);
- __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1772, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1772, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_4;
__pyx_t_3 += 1;
__Pyx_GIVEREF(__pyx_kp_u__29);
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__29);
- __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1772, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1770
+ /* "lxml/etree.pyx":1779
+ *
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
* # FIXME: should this be None or '&[VALUE];' or the resolved
* # entity value ?
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidNode(self)
- * return f'&{funicode(self._c_node.name)};'
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1774
- * return f'&{funicode(self._c_node.name)};'
+/* "lxml/etree.pyx":1785
+ * return f'&{funicode(self._c_node.name)};'
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return "&%s;" % strrepr(self.name)
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/etree.pyx":1775
+ /* "lxml/etree.pyx":1786
*
* def __repr__(self):
* return "&%s;" % strrepr(self.name) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1775, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1775, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_strrepr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1786, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1775, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1774
- * return f'&{funicode(self._c_node.name)};'
+ /* "lxml/etree.pyx":1785
+ * return f'&{funicode(self._c_node.name)};'
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return "&%s;" % strrepr(self.name)
return __pyx_r;
}
-/* "lxml/etree.pyx":1802
+/* "lxml/etree.pyx":1813
* cdef readonly unicode localname
* cdef readonly unicode namespace
* def __init__(self, text_or_uri_or_element, tag=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1802, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1813, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1802, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1813, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.QName.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_text_or_uri_or_element);
__Pyx_INCREF(__pyx_v_tag);
- /* "lxml/etree.pyx":1803
+ /* "lxml/etree.pyx":1814
* cdef readonly unicode namespace
* def __init__(self, text_or_uri_or_element, tag=None):
* if text_or_uri_or_element is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1805
+ /* "lxml/etree.pyx":1816
* if text_or_uri_or_element is None:
* # Allow None as no namespace.
* text_or_uri_or_element, tag = tag, None # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1803
+ /* "lxml/etree.pyx":1814
* cdef readonly unicode namespace
* def __init__(self, text_or_uri_or_element, tag=None):
* if text_or_uri_or_element is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1806
+ /* "lxml/etree.pyx":1817
* # Allow None as no namespace.
* text_or_uri_or_element, tag = tag, None
* if not _isString(text_or_uri_or_element): # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1807
+ /* "lxml/etree.pyx":1818
* text_or_uri_or_element, tag = tag, None
* if not _isString(text_or_uri_or_element):
* if isinstance(text_or_uri_or_element, _Element): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":1808
+ /* "lxml/etree.pyx":1819
* if not _isString(text_or_uri_or_element):
* if isinstance(text_or_uri_or_element, _Element):
* text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag # <<<<<<<<<<<<<<
* if not _isString(text_or_uri_or_element):
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1808, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1809
+ /* "lxml/etree.pyx":1820
* if isinstance(text_or_uri_or_element, _Element):
* text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag
* if not _isString(text_or_uri_or_element): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "lxml/etree.pyx":1810
+ /* "lxml/etree.pyx":1821
* text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag
* if not _isString(text_or_uri_or_element):
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}" # <<<<<<<<<<<<<<
* elif isinstance(text_or_uri_or_element, QName):
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text
*/
- __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1810, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))), __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_input_tag_of_type, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1810, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_input_tag_of_type, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1821, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_3, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 1810, __pyx_L1_error)
+ __PYX_ERR(0, 1821, __pyx_L1_error)
- /* "lxml/etree.pyx":1809
+ /* "lxml/etree.pyx":1820
* if isinstance(text_or_uri_or_element, _Element):
* text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag
* if not _isString(text_or_uri_or_element): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1807
+ /* "lxml/etree.pyx":1818
* text_or_uri_or_element, tag = tag, None
* if not _isString(text_or_uri_or_element):
* if isinstance(text_or_uri_or_element, _Element): # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/etree.pyx":1811
+ /* "lxml/etree.pyx":1822
* if not _isString(text_or_uri_or_element):
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
* elif isinstance(text_or_uri_or_element, QName): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1812
+ /* "lxml/etree.pyx":1823
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
* elif isinstance(text_or_uri_or_element, QName):
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1811
+ /* "lxml/etree.pyx":1822
* if not _isString(text_or_uri_or_element):
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
* elif isinstance(text_or_uri_or_element, QName): # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/etree.pyx":1813
+ /* "lxml/etree.pyx":1824
* elif isinstance(text_or_uri_or_element, QName):
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text
* elif text_or_uri_or_element is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (likely(__pyx_t_1)) {
- /* "lxml/etree.pyx":1814
+ /* "lxml/etree.pyx":1825
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text
* elif text_or_uri_or_element is not None:
* text_or_uri_or_element = unicode(text_or_uri_or_element) # <<<<<<<<<<<<<<
* else:
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
*/
- __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_text_or_uri_or_element); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1814, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_text_or_uri_or_element); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1825, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1813
+ /* "lxml/etree.pyx":1824
* elif isinstance(text_or_uri_or_element, QName):
* text_or_uri_or_element = (<QName>text_or_uri_or_element).text
* elif text_or_uri_or_element is not None: # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/etree.pyx":1816
+ /* "lxml/etree.pyx":1827
* text_or_uri_or_element = unicode(text_or_uri_or_element)
* else:
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}" # <<<<<<<<<<<<<<
* ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
*/
/*else*/ {
- __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1816, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_input_tag_of_type, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1816, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_input_tag_of_type, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(0, 1816, __pyx_L1_error)
+ __PYX_ERR(0, 1827, __pyx_L1_error)
}
__pyx_L5:;
- /* "lxml/etree.pyx":1806
+ /* "lxml/etree.pyx":1817
* # Allow None as no namespace.
* text_or_uri_or_element, tag = tag, None
* if not _isString(text_or_uri_or_element): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1818
+ /* "lxml/etree.pyx":1829
* raise ValueError, f"Invalid input tag of type {type(text_or_uri_or_element)!r}"
*
* ns_utf, tag_utf = _getNsTag(text_or_uri_or_element) # <<<<<<<<<<<<<<
* if tag is not None:
* # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (likely(__pyx_t_4 != Py_None)) {
PyObject* sequence = __pyx_t_4;
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1818, __pyx_L1_error)
+ __PYX_ERR(0, 1829, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_5);
#else
- __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1818, __pyx_L1_error)
+ __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 1829, __pyx_L1_error)
}
__pyx_v_ns_utf = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_v_tag_utf = __pyx_t_5;
__pyx_t_5 = 0;
- /* "lxml/etree.pyx":1819
+ /* "lxml/etree.pyx":1830
*
* ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1821
+ /* "lxml/etree.pyx":1832
* if tag is not None:
* # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
* if ns_utf is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":1822
+ /* "lxml/etree.pyx":1833
* # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
* if ns_utf is None:
* ns_utf = tag_utf # case 1: namespace ended up as tag name # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_tag_utf);
__Pyx_DECREF_SET(__pyx_v_ns_utf, __pyx_v_tag_utf);
- /* "lxml/etree.pyx":1821
+ /* "lxml/etree.pyx":1832
* if tag is not None:
* # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
* if ns_utf is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1823
+ /* "lxml/etree.pyx":1834
* if ns_utf is None:
* ns_utf = tag_utf # case 1: namespace ended up as tag name
* tag_utf = _utf8(tag) # <<<<<<<<<<<<<<
* _tagValidOrRaise(tag_utf)
* self.localname = (<bytes>tag_utf).decode('utf8')
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1823, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__utf8(__pyx_v_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1834, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_tag_utf, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1819
+ /* "lxml/etree.pyx":1830
*
* ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1824
+ /* "lxml/etree.pyx":1835
* ns_utf = tag_utf # case 1: namespace ended up as tag name
* tag_utf = _utf8(tag)
* _tagValidOrRaise(tag_utf) # <<<<<<<<<<<<<<
* self.localname = (<bytes>tag_utf).decode('utf8')
* if ns_utf is None:
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1824, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1835, __pyx_L1_error)
- /* "lxml/etree.pyx":1825
+ /* "lxml/etree.pyx":1836
* tag_utf = _utf8(tag)
* _tagValidOrRaise(tag_utf)
* self.localname = (<bytes>tag_utf).decode('utf8') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_tag_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(0, 1825, __pyx_L1_error)
+ __PYX_ERR(0, 1836, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1825, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_tag_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->localname);
__pyx_v_self->localname = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1826
+ /* "lxml/etree.pyx":1837
* _tagValidOrRaise(tag_utf)
* self.localname = (<bytes>tag_utf).decode('utf8')
* if ns_utf is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1827
+ /* "lxml/etree.pyx":1838
* self.localname = (<bytes>tag_utf).decode('utf8')
* if ns_utf is None:
* self.namespace = None # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->namespace);
__pyx_v_self->namespace = ((PyObject*)Py_None);
- /* "lxml/etree.pyx":1828
+ /* "lxml/etree.pyx":1839
* if ns_utf is None:
* self.namespace = None
* self.text = self.localname # <<<<<<<<<<<<<<
__pyx_v_self->text = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1826
+ /* "lxml/etree.pyx":1837
* _tagValidOrRaise(tag_utf)
* self.localname = (<bytes>tag_utf).decode('utf8')
* if ns_utf is None: # <<<<<<<<<<<<<<
goto __pyx_L9;
}
- /* "lxml/etree.pyx":1830
+ /* "lxml/etree.pyx":1841
* self.text = self.localname
* else:
* self.namespace = (<bytes>ns_utf).decode('utf8') # <<<<<<<<<<<<<<
/*else*/ {
if (unlikely(__pyx_v_ns_utf == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(0, 1830, __pyx_L1_error)
+ __PYX_ERR(0, 1841, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_ns_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1830, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_ns_utf), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1841, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->namespace);
__pyx_v_self->namespace = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1831
+ /* "lxml/etree.pyx":1842
* else:
* self.namespace = (<bytes>ns_utf).decode('utf8')
* self.text = u"{%s}%s" % (self.namespace, self.localname) # <<<<<<<<<<<<<<
* def __str__(self):
* return self.text
*/
- __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1831, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = 0;
__pyx_t_8 = 127;
__pyx_t_7 += 1;
__Pyx_GIVEREF(__pyx_kp_u__30);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u__30);
- __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->namespace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->namespace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
__pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__pyx_t_7 += 1;
__Pyx_GIVEREF(__pyx_kp_u__31);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u__31);
- __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->localname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_self->localname); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_8;
__pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5);
__pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1831, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GIVEREF(__pyx_t_5);
}
__pyx_L9:;
- /* "lxml/etree.pyx":1802
+ /* "lxml/etree.pyx":1813
* cdef readonly unicode localname
* cdef readonly unicode namespace
* def __init__(self, text_or_uri_or_element, tag=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1832
+/* "lxml/etree.pyx":1843
* self.namespace = (<bytes>ns_utf).decode('utf8')
* self.text = u"{%s}%s" % (self.namespace, self.localname)
* def __str__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__str__", 0);
- /* "lxml/etree.pyx":1833
+ /* "lxml/etree.pyx":1844
* self.text = u"{%s}%s" % (self.namespace, self.localname)
* def __str__(self):
* return self.text # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_self->text;
goto __pyx_L0;
- /* "lxml/etree.pyx":1832
+ /* "lxml/etree.pyx":1843
* self.namespace = (<bytes>ns_utf).decode('utf8')
* self.text = u"{%s}%s" % (self.namespace, self.localname)
* def __str__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1834
+/* "lxml/etree.pyx":1845
* def __str__(self):
* return self.text
* def __hash__(self): # <<<<<<<<<<<<<<
Py_hash_t __pyx_t_2;
__Pyx_RefNannySetupContext("__hash__", 0);
- /* "lxml/etree.pyx":1835
+ /* "lxml/etree.pyx":1846
* return self.text
* def __hash__(self):
* return hash(self.text) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = __pyx_v_self->text;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(0, 1835, __pyx_L1_error)
+ __pyx_t_2 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_hash_t)-1))) __PYX_ERR(0, 1846, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
goto __pyx_L0;
- /* "lxml/etree.pyx":1834
+ /* "lxml/etree.pyx":1845
* def __str__(self):
* return self.text
* def __hash__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1836
+/* "lxml/etree.pyx":1847
* def __hash__(self):
* return hash(self.text)
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__richcmp__", 0);
__Pyx_INCREF(__pyx_v_other);
- /* "lxml/etree.pyx":1837
+ /* "lxml/etree.pyx":1848
* return hash(self.text)
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "lxml/etree.pyx":1838
+ /* "lxml/etree.pyx":1849
* def __richcmp__(self, other, int op):
* try:
* if type(other) is QName: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":1839
+ /* "lxml/etree.pyx":1850
* try:
* if type(other) is QName:
* other = (<QName>other).text # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_other, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":1838
+ /* "lxml/etree.pyx":1849
* def __richcmp__(self, other, int op):
* try:
* if type(other) is QName: # <<<<<<<<<<<<<<
goto __pyx_L9;
}
- /* "lxml/etree.pyx":1840
+ /* "lxml/etree.pyx":1851
* if type(other) is QName:
* other = (<QName>other).text
* elif not isinstance(other, unicode): # <<<<<<<<<<<<<<
__pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":1841
+ /* "lxml/etree.pyx":1852
* other = (<QName>other).text
* elif not isinstance(other, unicode):
* other = unicode(other) # <<<<<<<<<<<<<<
* except (ValueError, UnicodeDecodeError):
* return NotImplemented
*/
- __pyx_t_6 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1841, __pyx_L3_error)
+ __pyx_t_6 = __Pyx_PyObject_Unicode(__pyx_v_other); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1852, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_other, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":1840
+ /* "lxml/etree.pyx":1851
* if type(other) is QName:
* other = (<QName>other).text
* elif not isinstance(other, unicode): # <<<<<<<<<<<<<<
}
__pyx_L9:;
- /* "lxml/etree.pyx":1837
+ /* "lxml/etree.pyx":1848
* return hash(self.text)
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":1842
+ /* "lxml/etree.pyx":1853
* elif not isinstance(other, unicode):
* other = unicode(other)
* except (ValueError, UnicodeDecodeError): # <<<<<<<<<<<<<<
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("lxml.etree.QName.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 1842, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 1853, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_9);
- /* "lxml/etree.pyx":1843
+ /* "lxml/etree.pyx":1854
* other = unicode(other)
* except (ValueError, UnicodeDecodeError):
* return NotImplemented # <<<<<<<<<<<<<<
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "lxml/etree.pyx":1837
+ /* "lxml/etree.pyx":1848
* return hash(self.text)
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__pyx_L8_try_end:;
}
- /* "lxml/etree.pyx":1844
+ /* "lxml/etree.pyx":1855
* except (ValueError, UnicodeDecodeError):
* return NotImplemented
* return python.PyObject_RichCompare(self.text, other, op) # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
__pyx_t_9 = __pyx_v_self->text;
__Pyx_INCREF(__pyx_t_9);
- __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1844, __pyx_L1_error)
+ __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_r = __pyx_t_8;
__pyx_t_8 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1836
+ /* "lxml/etree.pyx":1847
* def __hash__(self):
* return hash(self.text)
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1799
+/* "lxml/etree.pyx":1810
* their text content.
* """
* cdef readonly unicode text # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1800
+/* "lxml/etree.pyx":1811
* """
* cdef readonly unicode text
* cdef readonly unicode localname # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1801
+/* "lxml/etree.pyx":1812
* cdef readonly unicode text
* cdef readonly unicode localname
* cdef readonly unicode namespace # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1857
+/* "lxml/etree.pyx":1868
*
* @cython.final
* cdef int _assertHasRoot(self) except -1: # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("_assertHasRoot", 0);
- /* "lxml/etree.pyx":1863
+ /* "lxml/etree.pyx":1874
* the caller program.
* """
* assert self._context_node is not None, \ # <<<<<<<<<<<<<<
__pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_u_ElementTree_not_initialized_miss);
- __PYX_ERR(0, 1863, __pyx_L1_error)
+ __PYX_ERR(0, 1874, __pyx_L1_error)
}
}
#endif
- /* "lxml/etree.pyx":1865
+ /* "lxml/etree.pyx":1876
* assert self._context_node is not None, \
* u"ElementTree not initialized, missing root"
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1857
+ /* "lxml/etree.pyx":1868
*
* @cython.final
* cdef int _assertHasRoot(self) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1867
+/* "lxml/etree.pyx":1878
* return 0
*
* def parse(self, source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 1867, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 1878, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1867, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1878, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 1867, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 1878, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_parse(((struct LxmlElementTree *)__pyx_v_self), __pyx_v_source, __pyx_v_parser, __pyx_v_base_url);
/* function exit code */
int __pyx_t_10;
__Pyx_RefNannySetupContext("parse", 0);
- /* "lxml/etree.pyx":1872
+ /* "lxml/etree.pyx":1883
* Updates self with the content of source and returns its root
* """
* cdef _Document doc = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_doc = ((struct LxmlDocument *)Py_None);
- /* "lxml/etree.pyx":1873
+ /* "lxml/etree.pyx":1884
* """
* cdef _Document doc = None
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "lxml/etree.pyx":1874
+ /* "lxml/etree.pyx":1885
* cdef _Document doc = None
* try:
* doc = _parseDocument(source, parser, base_url) # <<<<<<<<<<<<<<
* self._context_node = doc.getroot()
* if self._context_node is None:
*/
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1874, __pyx_L3_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1885, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1875
+ /* "lxml/etree.pyx":1886
* try:
* doc = _parseDocument(source, parser, base_url)
* self._context_node = doc.getroot() # <<<<<<<<<<<<<<
* if self._context_node is None:
* self._doc = doc
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1875, __pyx_L3_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
- if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1875, __pyx_L3_error)
+ if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1886, __pyx_L3_error)
__Pyx_GIVEREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_v_self->_context_node);
__Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
__pyx_v_self->_context_node = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1876
+ /* "lxml/etree.pyx":1887
* doc = _parseDocument(source, parser, base_url)
* self._context_node = doc.getroot()
* if self._context_node is None: # <<<<<<<<<<<<<<
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
- /* "lxml/etree.pyx":1877
+ /* "lxml/etree.pyx":1888
* self._context_node = doc.getroot()
* if self._context_node is None:
* self._doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_doc));
__pyx_v_self->_doc = __pyx_v_doc;
- /* "lxml/etree.pyx":1876
+ /* "lxml/etree.pyx":1887
* doc = _parseDocument(source, parser, base_url)
* self._context_node = doc.getroot()
* if self._context_node is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1873
+ /* "lxml/etree.pyx":1884
* """
* cdef _Document doc = None
* try: # <<<<<<<<<<<<<<
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":1878
+ /* "lxml/etree.pyx":1889
* if self._context_node is None:
* self._doc = doc
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
* self._context_node = result_container.result
*/
__Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_7, &__pyx_t_8);
- __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1878, __pyx_L5_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1889, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
if (__pyx_t_10) {
__Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 1878, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 1889, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_7);
__pyx_v_result_container = __pyx_t_7;
- /* "lxml/etree.pyx":1880
+ /* "lxml/etree.pyx":1891
* except _TargetParserResult as result_container:
* # raises a TypeError if we don't get an _Element
* self._context_node = result_container.result # <<<<<<<<<<<<<<
* return self._context_node
*
*/
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1880, __pyx_L5_except_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1891, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_9);
- if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1880, __pyx_L5_except_error)
+ if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1891, __pyx_L5_except_error)
__Pyx_GIVEREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_v_self->_context_node);
__Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "lxml/etree.pyx":1873
+ /* "lxml/etree.pyx":1884
* """
* cdef _Document doc = None
* try: # <<<<<<<<<<<<<<
__pyx_L8_try_end:;
}
- /* "lxml/etree.pyx":1881
+ /* "lxml/etree.pyx":1892
* # raises a TypeError if we don't get an _Element
* self._context_node = result_container.result
* return self._context_node # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self->_context_node);
goto __pyx_L0;
- /* "lxml/etree.pyx":1867
+ /* "lxml/etree.pyx":1878
* return 0
*
* def parse(self, source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1883
+/* "lxml/etree.pyx":1894
* return self._context_node
*
* def _setroot(self, _Element root not None): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_setroot (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_4lxml_5etree__Element, 0, "root", 0))) __PYX_ERR(0, 1883, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_4lxml_5etree__Element, 0, "root", 0))) __PYX_ERR(0, 1894, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(((struct LxmlElementTree *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_root));
/* function exit code */
int __pyx_t_2;
__Pyx_RefNannySetupContext("_setroot", 0);
- /* "lxml/etree.pyx":1888
+ /* "lxml/etree.pyx":1899
* Relocate the ElementTree to a new root node.
* """
* _assertValidNode(root) # <<<<<<<<<<<<<<
* if root._c_node.type != tree.XML_ELEMENT_NODE:
* raise TypeError, u"Only elements can be the root of an ElementTree"
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1888, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1899, __pyx_L1_error)
- /* "lxml/etree.pyx":1889
+ /* "lxml/etree.pyx":1900
* """
* _assertValidNode(root)
* if root._c_node.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_root->_c_node->type != XML_ELEMENT_NODE) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":1890
+ /* "lxml/etree.pyx":1901
* _assertValidNode(root)
* if root._c_node.type != tree.XML_ELEMENT_NODE:
* raise TypeError, u"Only elements can be the root of an ElementTree" # <<<<<<<<<<<<<<
* self._doc = None
*/
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_Only_elements_can_be_the_root_of, 0, 0);
- __PYX_ERR(0, 1890, __pyx_L1_error)
+ __PYX_ERR(0, 1901, __pyx_L1_error)
- /* "lxml/etree.pyx":1889
+ /* "lxml/etree.pyx":1900
* """
* _assertValidNode(root)
* if root._c_node.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1891
+ /* "lxml/etree.pyx":1902
* if root._c_node.type != tree.XML_ELEMENT_NODE:
* raise TypeError, u"Only elements can be the root of an ElementTree"
* self._context_node = root # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
__pyx_v_self->_context_node = __pyx_v_root;
- /* "lxml/etree.pyx":1892
+ /* "lxml/etree.pyx":1903
* raise TypeError, u"Only elements can be the root of an ElementTree"
* self._context_node = root
* self._doc = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_doc));
__pyx_v_self->_doc = ((struct LxmlDocument *)Py_None);
- /* "lxml/etree.pyx":1883
+ /* "lxml/etree.pyx":1894
* return self._context_node
*
* def _setroot(self, _Element root not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1894
+/* "lxml/etree.pyx":1905
* self._doc = None
*
* def getroot(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getroot", 0);
- /* "lxml/etree.pyx":1899
+ /* "lxml/etree.pyx":1910
* Gets the root element for this tree.
* """
* return self._context_node # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self->_context_node);
goto __pyx_L0;
- /* "lxml/etree.pyx":1894
+ /* "lxml/etree.pyx":1905
* self._doc = None
*
* def getroot(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1901
+/* "lxml/etree.pyx":1912
* return self._context_node
*
* def __copy__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__copy__", 0);
- /* "lxml/etree.pyx":1902
+ /* "lxml/etree.pyx":1913
*
* def __copy__(self):
* return _elementTreeFactory(self._doc, self._context_node) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1902, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1913, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1901
+ /* "lxml/etree.pyx":1912
* return self._context_node
*
* def __copy__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1904
+/* "lxml/etree.pyx":1915
* return _elementTreeFactory(self._doc, self._context_node)
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
int __pyx_t_6;
__Pyx_RefNannySetupContext("__deepcopy__", 0);
- /* "lxml/etree.pyx":1908
+ /* "lxml/etree.pyx":1919
* cdef _Document doc
* cdef xmlDoc* c_doc
* if self._context_node is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1909
+ /* "lxml/etree.pyx":1920
* cdef xmlDoc* c_doc
* if self._context_node is not None:
* root = self._context_node.__copy__() # <<<<<<<<<<<<<<
* assert root is not None
* _assertValidNode(root)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s_copy_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s_copy_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1909, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1909, __pyx_L1_error)
+ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 1920, __pyx_L1_error)
__pyx_v_root = ((struct LxmlElement *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":1910
+ /* "lxml/etree.pyx":1921
* if self._context_node is not None:
* root = self._context_node.__copy__()
* assert root is not None # <<<<<<<<<<<<<<
__pyx_t_2 = (((PyObject *)__pyx_v_root) != Py_None);
if (unlikely(!(__pyx_t_2 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
- __PYX_ERR(0, 1910, __pyx_L1_error)
+ __PYX_ERR(0, 1921, __pyx_L1_error)
}
}
#endif
- /* "lxml/etree.pyx":1911
+ /* "lxml/etree.pyx":1922
* root = self._context_node.__copy__()
* assert root is not None
* _assertValidNode(root) # <<<<<<<<<<<<<<
* _copyNonElementSiblings(self._context_node._c_node, root._c_node)
* return _elementTreeFactory(None, root)
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1911, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1922, __pyx_L1_error)
- /* "lxml/etree.pyx":1912
+ /* "lxml/etree.pyx":1923
* assert root is not None
* _assertValidNode(root)
* _copyNonElementSiblings(self._context_node._c_node, root._c_node) # <<<<<<<<<<<<<<
* return _elementTreeFactory(None, root)
* elif self._doc is not None:
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1912, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1923, __pyx_L1_error)
- /* "lxml/etree.pyx":1913
+ /* "lxml/etree.pyx":1924
* _assertValidNode(root)
* _copyNonElementSiblings(self._context_node._c_node, root._c_node)
* return _elementTreeFactory(None, root) # <<<<<<<<<<<<<<
* _assertValidDoc(self._doc)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1913, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1908
+ /* "lxml/etree.pyx":1919
* cdef _Document doc
* cdef xmlDoc* c_doc
* if self._context_node is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1914
+ /* "lxml/etree.pyx":1925
* _copyNonElementSiblings(self._context_node._c_node, root._c_node)
* return _elementTreeFactory(None, root)
* elif self._doc is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":1915
+ /* "lxml/etree.pyx":1926
* return _elementTreeFactory(None, root)
* elif self._doc is not None:
* _assertValidDoc(self._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_3 = ((PyObject *)__pyx_v_self->_doc);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_6 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_3)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1915, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_3)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1926, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":1916
+ /* "lxml/etree.pyx":1927
* elif self._doc is not None:
* _assertValidDoc(self._doc)
* c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1) # <<<<<<<<<<<<<<
*/
__pyx_v_c_doc = xmlCopyDoc(__pyx_v_self->_doc->_c_doc, 1);
- /* "lxml/etree.pyx":1917
+ /* "lxml/etree.pyx":1928
* _assertValidDoc(self._doc)
* c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
* if c_doc is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
if (unlikely(__pyx_t_1)) {
- /* "lxml/etree.pyx":1918
+ /* "lxml/etree.pyx":1929
* c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
* if c_doc is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* doc = _documentFactory(c_doc, self._doc._parser)
* return _elementTreeFactory(doc, None)
*/
- PyErr_NoMemory(); __PYX_ERR(0, 1918, __pyx_L1_error)
+ PyErr_NoMemory(); __PYX_ERR(0, 1929, __pyx_L1_error)
- /* "lxml/etree.pyx":1917
+ /* "lxml/etree.pyx":1928
* _assertValidDoc(self._doc)
* c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
* if c_doc is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1919
+ /* "lxml/etree.pyx":1930
* if c_doc is NULL:
* raise MemoryError()
* doc = _documentFactory(c_doc, self._doc._parser) # <<<<<<<<<<<<<<
*/
__pyx_t_3 = ((PyObject *)__pyx_v_self->_doc->_parser);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1919, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1930, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":1920
+ /* "lxml/etree.pyx":1931
* raise MemoryError()
* doc = _documentFactory(c_doc, self._doc._parser)
* return _elementTreeFactory(doc, None) # <<<<<<<<<<<<<<
* # so what ...
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1920, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1931, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1914
+ /* "lxml/etree.pyx":1925
* _copyNonElementSiblings(self._context_node._c_node, root._c_node)
* return _elementTreeFactory(None, root)
* elif self._doc is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1923
+ /* "lxml/etree.pyx":1934
* else:
* # so what ...
* return self # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/etree.pyx":1904
+ /* "lxml/etree.pyx":1915
* return _elementTreeFactory(self._doc, self._context_node)
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":1928
- * property docinfo:
- * u"""Information about the document provided by parser and DTD."""
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertHasRoot()
- * return DocInfo(self._context_node._doc)
+/* "lxml/etree.pyx":1938
+ * # not in ElementTree
+ * @property
+ * def docinfo(self): # <<<<<<<<<<<<<<
+ * """Information about the document provided by parser and DTD."""
+ * self._assertHasRoot()
*/
/* Python wrapper */
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1929
- * u"""Information about the document provided by parser and DTD."""
- * def __get__(self):
- * self._assertHasRoot() # <<<<<<<<<<<<<<
- * return DocInfo(self._context_node._doc)
+ /* "lxml/etree.pyx":1940
+ * def docinfo(self):
+ * """Information about the document provided by parser and DTD."""
+ * self._assertHasRoot() # <<<<<<<<<<<<<<
+ * return DocInfo(self._context_node._doc)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1929, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1940, __pyx_L1_error)
- /* "lxml/etree.pyx":1930
- * def __get__(self):
- * self._assertHasRoot()
- * return DocInfo(self._context_node._doc) # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1941
+ * """Information about the document provided by parser and DTD."""
+ * self._assertHasRoot()
+ * return DocInfo(self._context_node._doc) # <<<<<<<<<<<<<<
*
* # not in ElementTree, read-only
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_DocInfo), ((PyObject *)__pyx_v_self->_context_node->_doc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1930, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_DocInfo), ((PyObject *)__pyx_v_self->_context_node->_doc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":1928
- * property docinfo:
- * u"""Information about the document provided by parser and DTD."""
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertHasRoot()
- * return DocInfo(self._context_node._doc)
+ /* "lxml/etree.pyx":1938
+ * # not in ElementTree
+ * @property
+ * def docinfo(self): # <<<<<<<<<<<<<<
+ * """Information about the document provided by parser and DTD."""
+ * self._assertHasRoot()
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1936
- * u"""The parser that was used to parse the document in this ElementTree.
+/* "lxml/etree.pyx":1945
+ * # not in ElementTree, read-only
+ * @property
+ * def parser(self): # <<<<<<<<<<<<<<
+ * """The parser that was used to parse the document in this ElementTree.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._context_node is not None and \
- * self._context_node._doc is not None:
*/
/* Python wrapper */
int __pyx_t_3;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":1937
+ /* "lxml/etree.pyx":1948
+ * """The parser that was used to parse the document in this ElementTree.
* """
- * def __get__(self):
- * if self._context_node is not None and \ # <<<<<<<<<<<<<<
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser
+ * if self._context_node is not None and \ # <<<<<<<<<<<<<<
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser
*/
__pyx_t_2 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
goto __pyx_L4_bool_binop_done;
}
- /* "lxml/etree.pyx":1938
- * def __get__(self):
- * if self._context_node is not None and \
- * self._context_node._doc is not None: # <<<<<<<<<<<<<<
- * return self._context_node._doc._parser
- * if self._doc is not None:
+ /* "lxml/etree.pyx":1949
+ * """
+ * if self._context_node is not None and \
+ * self._context_node._doc is not None: # <<<<<<<<<<<<<<
+ * return self._context_node._doc._parser
+ * if self._doc is not None:
*/
__pyx_t_3 = (((PyObject *)__pyx_v_self->_context_node->_doc) != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
- /* "lxml/etree.pyx":1937
+ /* "lxml/etree.pyx":1948
+ * """The parser that was used to parse the document in this ElementTree.
* """
- * def __get__(self):
- * if self._context_node is not None and \ # <<<<<<<<<<<<<<
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser
+ * if self._context_node is not None and \ # <<<<<<<<<<<<<<
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser
*/
if (__pyx_t_1) {
- /* "lxml/etree.pyx":1939
- * if self._context_node is not None and \
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser # <<<<<<<<<<<<<<
- * if self._doc is not None:
- * return self._doc._parser
+ /* "lxml/etree.pyx":1950
+ * if self._context_node is not None and \
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser # <<<<<<<<<<<<<<
+ * if self._doc is not None:
+ * return self._doc._parser
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_self->_context_node->_doc->_parser));
__pyx_r = ((PyObject *)__pyx_v_self->_context_node->_doc->_parser);
goto __pyx_L0;
- /* "lxml/etree.pyx":1937
+ /* "lxml/etree.pyx":1948
+ * """The parser that was used to parse the document in this ElementTree.
* """
- * def __get__(self):
- * if self._context_node is not None and \ # <<<<<<<<<<<<<<
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser
+ * if self._context_node is not None and \ # <<<<<<<<<<<<<<
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser
*/
}
- /* "lxml/etree.pyx":1940
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser
- * if self._doc is not None: # <<<<<<<<<<<<<<
- * return self._doc._parser
- * return None
+ /* "lxml/etree.pyx":1951
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser
+ * if self._doc is not None: # <<<<<<<<<<<<<<
+ * return self._doc._parser
+ * return None
*/
__pyx_t_1 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":1941
- * return self._context_node._doc._parser
- * if self._doc is not None:
- * return self._doc._parser # <<<<<<<<<<<<<<
- * return None
+ /* "lxml/etree.pyx":1952
+ * return self._context_node._doc._parser
+ * if self._doc is not None:
+ * return self._doc._parser # <<<<<<<<<<<<<<
+ * return None
*
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = ((PyObject *)__pyx_v_self->_doc->_parser);
goto __pyx_L0;
- /* "lxml/etree.pyx":1940
- * self._context_node._doc is not None:
- * return self._context_node._doc._parser
- * if self._doc is not None: # <<<<<<<<<<<<<<
- * return self._doc._parser
- * return None
+ /* "lxml/etree.pyx":1951
+ * self._context_node._doc is not None:
+ * return self._context_node._doc._parser
+ * if self._doc is not None: # <<<<<<<<<<<<<<
+ * return self._doc._parser
+ * return None
*/
}
- /* "lxml/etree.pyx":1942
- * if self._doc is not None:
- * return self._doc._parser
- * return None # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":1953
+ * if self._doc is not None:
+ * return self._doc._parser
+ * return None # <<<<<<<<<<<<<<
*
* def write(self, file, *, encoding=None, method=u"xml",
*/
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":1936
- * u"""The parser that was used to parse the document in this ElementTree.
+ /* "lxml/etree.pyx":1945
+ * # not in ElementTree, read-only
+ * @property
+ * def parser(self): # <<<<<<<<<<<<<<
+ * """The parser that was used to parse the document in this ElementTree.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._context_node is not None and \
- * self._context_node._doc is not None:
*/
/* function exit code */
return __pyx_r;
}
-/* "lxml/etree.pyx":1944
- * return None
+/* "lxml/etree.pyx":1955
+ * return None
*
* def write(self, file, *, encoding=None, method=u"xml", # <<<<<<<<<<<<<<
* pretty_print=False, xml_declaration=None, with_tail=True,
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)__pyx_n_u_xml);
- /* "lxml/etree.pyx":1945
+ /* "lxml/etree.pyx":1956
*
* def write(self, file, *, encoding=None, method=u"xml",
* pretty_print=False, xml_declaration=None, with_tail=True, # <<<<<<<<<<<<<<
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_True);
- /* "lxml/etree.pyx":1946
+ /* "lxml/etree.pyx":1957
* def write(self, file, *, encoding=None, method=u"xml",
* pretty_print=False, xml_declaration=None, with_tail=True,
* standalone=None, doctype=None, compression=0, # <<<<<<<<<<<<<<
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)__pyx_int_0);
- /* "lxml/etree.pyx":1947
+ /* "lxml/etree.pyx":1958
* pretty_print=False, xml_declaration=None, with_tail=True,
* standalone=None, doctype=None, compression=0,
* exclusive=False, with_comments=True, inclusive_ns_prefixes=None, # <<<<<<<<<<<<<<
values[10] = ((PyObject *)Py_True);
values[11] = ((PyObject *)Py_None);
- /* "lxml/etree.pyx":1948
+ /* "lxml/etree.pyx":1959
* standalone=None, doctype=None, compression=0,
* exclusive=False, with_comments=True, inclusive_ns_prefixes=None,
* docstring=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)) __PYX_ERR(0, 1944, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)) __PYX_ERR(0, 1955, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1944, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1955, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_10write(((struct LxmlElementTree *)__pyx_v_self), __pyx_v_file, __pyx_v_encoding, __pyx_v_method, __pyx_v_pretty_print, __pyx_v_xml_declaration, __pyx_v_with_tail, __pyx_v_standalone, __pyx_v_doctype, __pyx_v_compression, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes, __pyx_v_docstring);
- /* "lxml/etree.pyx":1944
- * return None
+ /* "lxml/etree.pyx":1955
+ * return None
*
* def write(self, file, *, encoding=None, method=u"xml", # <<<<<<<<<<<<<<
* pretty_print=False, xml_declaration=None, with_tail=True,
__Pyx_INCREF(__pyx_v_doctype);
__Pyx_INCREF(__pyx_v_compression);
- /* "lxml/etree.pyx":1990
+ /* "lxml/etree.pyx":2001
* cdef int is_standalone
*
* self._assertHasRoot() # <<<<<<<<<<<<<<
* _assertValidNode(self._context_node)
* if compression is None or compression < 0:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1990, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2001, __pyx_L1_error)
- /* "lxml/etree.pyx":1991
+ /* "lxml/etree.pyx":2002
*
* self._assertHasRoot()
* _assertValidNode(self._context_node) # <<<<<<<<<<<<<<
*/
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_2)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1991, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_2)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":1992
+ /* "lxml/etree.pyx":2003
* self._assertHasRoot()
* _assertValidNode(self._context_node)
* if compression is None or compression < 0: # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1992, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1992, __pyx_L1_error)
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2003, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2003, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L4_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1993
+ /* "lxml/etree.pyx":2004
* _assertValidNode(self._context_node)
* if compression is None or compression < 0:
* compression = 0 # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_int_0);
__Pyx_DECREF_SET(__pyx_v_compression, __pyx_int_0);
- /* "lxml/etree.pyx":1992
+ /* "lxml/etree.pyx":2003
* self._assertHasRoot()
* _assertValidNode(self._context_node)
* if compression is None or compression < 0: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1996
+ /* "lxml/etree.pyx":2007
*
* # C14N serialisation
* if method == 'c14n': # <<<<<<<<<<<<<<
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
*/
- __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_c14n, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1996, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_c14n, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2007, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/etree.pyx":1997
+ /* "lxml/etree.pyx":2008
* # C14N serialisation
* if method == 'c14n':
* if encoding is not None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_3 != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":1998
+ /* "lxml/etree.pyx":2009
* if method == 'c14n':
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N") # <<<<<<<<<<<<<<
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1998, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_Raise(__pyx_t_2, 0, 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __PYX_ERR(0, 1998, __pyx_L1_error)
+ __PYX_ERR(0, 2009, __pyx_L1_error)
- /* "lxml/etree.pyx":1997
+ /* "lxml/etree.pyx":2008
* # C14N serialisation
* if method == 'c14n':
* if encoding is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":1999
+ /* "lxml/etree.pyx":2010
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration: # <<<<<<<<<<<<<<
* raise ValueError("Cannot enable XML declaration in C14N")
*
*/
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1999, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2010, __pyx_L1_error)
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":2000
+ /* "lxml/etree.pyx":2011
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N") # <<<<<<<<<<<<<<
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
*/
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2000, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_Raise(__pyx_t_2, 0, 0, 0);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __PYX_ERR(0, 2000, __pyx_L1_error)
+ __PYX_ERR(0, 2011, __pyx_L1_error)
- /* "lxml/etree.pyx":1999
+ /* "lxml/etree.pyx":2010
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2002
+ /* "lxml/etree.pyx":2013
* raise ValueError("Cannot enable XML declaration in C14N")
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments, # <<<<<<<<<<<<<<
*/
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2002, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2002, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2013, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2013, __pyx_L1_error)
- /* "lxml/etree.pyx":2003
+ /* "lxml/etree.pyx":2014
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
* compression, inclusive_ns_prefixes) # <<<<<<<<<<<<<<
* return
* if not with_comments:
*/
- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2003, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2014, __pyx_L1_error)
- /* "lxml/etree.pyx":2002
+ /* "lxml/etree.pyx":2013
* raise ValueError("Cannot enable XML declaration in C14N")
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments, # <<<<<<<<<<<<<<
* compression, inclusive_ns_prefixes)
* return
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_t_5, __pyx_t_3, __pyx_t_1, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2002, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_t_5, __pyx_t_3, __pyx_t_1, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":2004
+ /* "lxml/etree.pyx":2015
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
* compression, inclusive_ns_prefixes)
* return # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":1996
+ /* "lxml/etree.pyx":2007
*
* # C14N serialisation
* if method == 'c14n': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2005
+ /* "lxml/etree.pyx":2016
* compression, inclusive_ns_prefixes)
* return
* if not with_comments: # <<<<<<<<<<<<<<
* raise ValueError("Can only discard comments in C14N serialisation")
* # suppress decl. in default case (purely for ElementTree compatibility)
*/
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2005, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2016, __pyx_L1_error)
__pyx_t_5 = ((!__pyx_t_3) != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":2006
+ /* "lxml/etree.pyx":2017
* return
* if not with_comments:
* raise ValueError("Can only discard comments in C14N serialisation") # <<<<<<<<<<<<<<
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None:
*/
- __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2006, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- __PYX_ERR(0, 2006, __pyx_L1_error)
+ __PYX_ERR(0, 2017, __pyx_L1_error)
- /* "lxml/etree.pyx":2005
+ /* "lxml/etree.pyx":2016
* compression, inclusive_ns_prefixes)
* return
* if not with_comments: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2008
+ /* "lxml/etree.pyx":2019
* raise ValueError("Can only discard comments in C14N serialisation")
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_5 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2009
+ /* "lxml/etree.pyx":2020
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None:
* write_declaration = xml_declaration # <<<<<<<<<<<<<<
* if encoding is None:
* encoding = u'ASCII'
*/
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2009, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2020, __pyx_L1_error)
__pyx_v_write_declaration = __pyx_t_3;
- /* "lxml/etree.pyx":2010
+ /* "lxml/etree.pyx":2021
* if xml_declaration is not None:
* write_declaration = xml_declaration
* if encoding is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_3 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2011
+ /* "lxml/etree.pyx":2022
* write_declaration = xml_declaration
* if encoding is None:
* encoding = u'ASCII' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_u_ASCII);
__Pyx_DECREF_SET(__pyx_v_encoding, __pyx_n_u_ASCII);
- /* "lxml/etree.pyx":2010
+ /* "lxml/etree.pyx":2021
* if xml_declaration is not None:
* write_declaration = xml_declaration
* if encoding is None: # <<<<<<<<<<<<<<
goto __pyx_L11;
}
- /* "lxml/etree.pyx":2013
+ /* "lxml/etree.pyx":2024
* encoding = u'ASCII'
* else:
* encoding = encoding.upper() # <<<<<<<<<<<<<<
* encoding = u'ASCII'
*/
/*else*/ {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2013, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2013, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_6);
}
__pyx_L11:;
- /* "lxml/etree.pyx":2008
+ /* "lxml/etree.pyx":2019
* raise ValueError("Can only discard comments in C14N serialisation")
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None: # <<<<<<<<<<<<<<
goto __pyx_L10;
}
- /* "lxml/etree.pyx":2014
+ /* "lxml/etree.pyx":2025
* else:
* encoding = encoding.upper()
* elif encoding is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_5 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2015
+ /* "lxml/etree.pyx":2026
* encoding = encoding.upper()
* elif encoding is None:
* encoding = u'ASCII' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_u_ASCII);
__Pyx_DECREF_SET(__pyx_v_encoding, __pyx_n_u_ASCII);
- /* "lxml/etree.pyx":2016
+ /* "lxml/etree.pyx":2027
* elif encoding is None:
* encoding = u'ASCII'
* write_declaration = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_write_declaration = 0;
- /* "lxml/etree.pyx":2014
+ /* "lxml/etree.pyx":2025
* else:
* encoding = encoding.upper()
* elif encoding is None: # <<<<<<<<<<<<<<
goto __pyx_L10;
}
- /* "lxml/etree.pyx":2018
+ /* "lxml/etree.pyx":2029
* write_declaration = 0
* else:
* encoding = encoding.upper() # <<<<<<<<<<<<<<
* (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
*/
/*else*/ {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2018, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2018, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2029, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":2019
+ /* "lxml/etree.pyx":2030
* else:
* encoding = encoding.upper()
* write_declaration = encoding not in \ # <<<<<<<<<<<<<<
*/
__Pyx_INCREF(__pyx_v_encoding);
__pyx_t_6 = __pyx_v_encoding;
- __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u_US_ASCII, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2019, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u_US_ASCII, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2030, __pyx_L1_error)
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L12_bool_binop_done;
}
- __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_ASCII, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2019, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_ASCII, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2030, __pyx_L1_error)
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L12_bool_binop_done;
}
- __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_UTF8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2019, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_UTF8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2030, __pyx_L1_error)
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L12_bool_binop_done;
}
- __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u_UTF_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2019, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_kp_u_UTF_8, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2030, __pyx_L1_error)
__pyx_t_3 = __pyx_t_5;
__pyx_L12_bool_binop_done:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_L10:;
- /* "lxml/etree.pyx":2021
+ /* "lxml/etree.pyx":2032
* write_declaration = encoding not in \
* (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
* if standalone is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_3 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2022
+ /* "lxml/etree.pyx":2033
* (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
* if standalone is None:
* is_standalone = -1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_standalone = -1;
- /* "lxml/etree.pyx":2021
+ /* "lxml/etree.pyx":2032
* write_declaration = encoding not in \
* (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
* if standalone is None: # <<<<<<<<<<<<<<
goto __pyx_L16;
}
- /* "lxml/etree.pyx":2023
+ /* "lxml/etree.pyx":2034
* if standalone is None:
* is_standalone = -1
* elif standalone: # <<<<<<<<<<<<<<
* write_declaration = 1
* is_standalone = 1
*/
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2023, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2034, __pyx_L1_error)
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2024
+ /* "lxml/etree.pyx":2035
* is_standalone = -1
* elif standalone:
* write_declaration = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_write_declaration = 1;
- /* "lxml/etree.pyx":2025
+ /* "lxml/etree.pyx":2036
* elif standalone:
* write_declaration = 1
* is_standalone = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_standalone = 1;
- /* "lxml/etree.pyx":2023
+ /* "lxml/etree.pyx":2034
* if standalone is None:
* is_standalone = -1
* elif standalone: # <<<<<<<<<<<<<<
goto __pyx_L16;
}
- /* "lxml/etree.pyx":2027
+ /* "lxml/etree.pyx":2038
* is_standalone = 1
* else:
* write_declaration = 1 # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_write_declaration = 1;
- /* "lxml/etree.pyx":2028
+ /* "lxml/etree.pyx":2039
* else:
* write_declaration = 1
* is_standalone = 0 # <<<<<<<<<<<<<<
}
__pyx_L16:;
- /* "lxml/etree.pyx":2030
+ /* "lxml/etree.pyx":2041
* is_standalone = 0
*
* if docstring is not None and doctype is None: # <<<<<<<<<<<<<<
__pyx_L18_bool_binop_done:;
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2031
+ /* "lxml/etree.pyx":2042
*
* if docstring is not None and doctype is None:
* import warnings # <<<<<<<<<<<<<<
* warnings.warn(
* "The 'docstring' option is deprecated. Use 'doctype' instead.",
*/
- __pyx_t_6 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2031, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_warnings = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":2032
+ /* "lxml/etree.pyx":2043
* if docstring is not None and doctype is None:
* import warnings
* warnings.warn( # <<<<<<<<<<<<<<
* "The 'docstring' option is deprecated. Use 'doctype' instead.",
* DeprecationWarning)
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s_warn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2032, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s_warn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- /* "lxml/etree.pyx":2034
+ /* "lxml/etree.pyx":2045
* warnings.warn(
* "The 'docstring' option is deprecated. Use 'doctype' instead.",
* DeprecationWarning) # <<<<<<<<<<<<<<
* doctype = docstring
*
*/
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2032, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2035
+ /* "lxml/etree.pyx":2046
* "The 'docstring' option is deprecated. Use 'doctype' instead.",
* DeprecationWarning)
* doctype = docstring # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_docstring);
__Pyx_DECREF_SET(__pyx_v_doctype, __pyx_v_docstring);
- /* "lxml/etree.pyx":2030
+ /* "lxml/etree.pyx":2041
* is_standalone = 0
*
* if docstring is not None and doctype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2037
+ /* "lxml/etree.pyx":2048
* doctype = docstring
*
* _tofilelike(file, self._context_node, encoding, doctype, method, # <<<<<<<<<<<<<<
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- /* "lxml/etree.pyx":2038
+ /* "lxml/etree.pyx":2049
*
* _tofilelike(file, self._context_node, encoding, doctype, method,
* write_declaration, 1, pretty_print, with_tail, # <<<<<<<<<<<<<<
* is_standalone, compression)
*
*/
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error)
- /* "lxml/etree.pyx":2039
+ /* "lxml/etree.pyx":2050
* _tofilelike(file, self._context_node, encoding, doctype, method,
* write_declaration, 1, pretty_print, with_tail,
* is_standalone, compression) # <<<<<<<<<<<<<<
*
* def getpath(self, _Element element not None):
*/
- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2039, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2050, __pyx_L1_error)
- /* "lxml/etree.pyx":2037
+ /* "lxml/etree.pyx":2048
* doctype = docstring
*
* _tofilelike(file, self._context_node, encoding, doctype, method, # <<<<<<<<<<<<<<
* write_declaration, 1, pretty_print, with_tail,
* is_standalone, compression)
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_5, __pyx_t_3, __pyx_v_is_standalone, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2037, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_5, __pyx_t_3, __pyx_v_is_standalone, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":1944
- * return None
+ /* "lxml/etree.pyx":1955
+ * return None
*
* def write(self, file, *, encoding=None, method=u"xml", # <<<<<<<<<<<<<<
* pretty_print=False, xml_declaration=None, with_tail=True,
return __pyx_r;
}
-/* "lxml/etree.pyx":2041
+/* "lxml/etree.pyx":2052
* is_standalone, compression)
*
* def getpath(self, _Element element not None): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getpath (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2041, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2052, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_12getpath(((struct LxmlElementTree *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
/* function exit code */
xmlDoc *__pyx_t_5;
__Pyx_RefNannySetupContext("getpath", 0);
- /* "lxml/etree.pyx":2056
+ /* "lxml/etree.pyx":2067
* cdef _Element root
* cdef xmlDoc* c_doc
* _assertValidNode(element) # <<<<<<<<<<<<<<
* if self._context_node is not None:
* root = self._context_node
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2056, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2067, __pyx_L1_error)
- /* "lxml/etree.pyx":2057
+ /* "lxml/etree.pyx":2068
* cdef xmlDoc* c_doc
* _assertValidNode(element)
* if self._context_node is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2058
+ /* "lxml/etree.pyx":2069
* _assertValidNode(element)
* if self._context_node is not None:
* root = self._context_node # <<<<<<<<<<<<<<
__pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2059
+ /* "lxml/etree.pyx":2070
* if self._context_node is not None:
* root = self._context_node
* doc = root._doc # <<<<<<<<<<<<<<
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2057
+ /* "lxml/etree.pyx":2068
* cdef xmlDoc* c_doc
* _assertValidNode(element)
* if self._context_node is not None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2060
+ /* "lxml/etree.pyx":2071
* root = self._context_node
* doc = root._doc
* elif self._doc is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (likely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2061
+ /* "lxml/etree.pyx":2072
* doc = root._doc
* elif self._doc is not None:
* doc = self._doc # <<<<<<<<<<<<<<
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2062
+ /* "lxml/etree.pyx":2073
* elif self._doc is not None:
* doc = self._doc
* root = doc.getroot() # <<<<<<<<<<<<<<
* else:
* raise ValueError, u"Element is not in this tree."
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2062, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2073, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2062, __pyx_L1_error)
+ if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2073, __pyx_L1_error)
__pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2060
+ /* "lxml/etree.pyx":2071
* root = self._context_node
* doc = root._doc
* elif self._doc is not None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2064
+ /* "lxml/etree.pyx":2075
* root = doc.getroot()
* else:
* raise ValueError, u"Element is not in this tree." # <<<<<<<<<<<<<<
*/
/*else*/ {
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Element_is_not_in_this_tree, 0, 0);
- __PYX_ERR(0, 2064, __pyx_L1_error)
+ __PYX_ERR(0, 2075, __pyx_L1_error)
}
__pyx_L3:;
- /* "lxml/etree.pyx":2065
+ /* "lxml/etree.pyx":2076
* else:
* raise ValueError, u"Element is not in this tree."
* _assertValidDoc(doc) # <<<<<<<<<<<<<<
* _assertValidNode(root)
* if element._doc is not doc:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2065, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2076, __pyx_L1_error)
- /* "lxml/etree.pyx":2066
+ /* "lxml/etree.pyx":2077
* raise ValueError, u"Element is not in this tree."
* _assertValidDoc(doc)
* _assertValidNode(root) # <<<<<<<<<<<<<<
* if element._doc is not doc:
* raise ValueError, u"Element is not in this tree."
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2066, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2077, __pyx_L1_error)
- /* "lxml/etree.pyx":2067
+ /* "lxml/etree.pyx":2078
* _assertValidDoc(doc)
* _assertValidNode(root)
* if element._doc is not doc: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2068
+ /* "lxml/etree.pyx":2079
* _assertValidNode(root)
* if element._doc is not doc:
* raise ValueError, u"Element is not in this tree." # <<<<<<<<<<<<<<
* c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Element_is_not_in_this_tree, 0, 0);
- __PYX_ERR(0, 2068, __pyx_L1_error)
+ __PYX_ERR(0, 2079, __pyx_L1_error)
- /* "lxml/etree.pyx":2067
+ /* "lxml/etree.pyx":2078
* _assertValidDoc(doc)
* _assertValidNode(root)
* if element._doc is not doc: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2070
+ /* "lxml/etree.pyx":2081
* raise ValueError, u"Element is not in this tree."
*
* c_doc = _fakeRootDoc(doc._c_doc, root._c_node) # <<<<<<<<<<<<<<
* c_path = tree.xmlGetNodePath(element._c_node)
* _destroyFakeDoc(doc._c_doc, c_doc)
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == ((xmlDoc *)NULL))) __PYX_ERR(0, 2070, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == ((xmlDoc *)NULL))) __PYX_ERR(0, 2081, __pyx_L1_error)
__pyx_v_c_doc = __pyx_t_5;
- /* "lxml/etree.pyx":2071
+ /* "lxml/etree.pyx":2082
*
* c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
* c_path = tree.xmlGetNodePath(element._c_node) # <<<<<<<<<<<<<<
*/
__pyx_v_c_path = xmlGetNodePath(__pyx_v_element->_c_node);
- /* "lxml/etree.pyx":2072
+ /* "lxml/etree.pyx":2083
* c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
* c_path = tree.xmlGetNodePath(element._c_node)
* _destroyFakeDoc(doc._c_doc, c_doc) # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_doc->_c_doc, __pyx_v_c_doc);
- /* "lxml/etree.pyx":2073
+ /* "lxml/etree.pyx":2084
* c_path = tree.xmlGetNodePath(element._c_node)
* _destroyFakeDoc(doc._c_doc, c_doc)
* if c_path is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_path == NULL) != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2074
+ /* "lxml/etree.pyx":2085
* _destroyFakeDoc(doc._c_doc, c_doc)
* if c_path is NULL:
* raise MemoryError() # <<<<<<<<<<<<<<
* path = funicode(c_path)
* tree.xmlFree(c_path)
*/
- PyErr_NoMemory(); __PYX_ERR(0, 2074, __pyx_L1_error)
+ PyErr_NoMemory(); __PYX_ERR(0, 2085, __pyx_L1_error)
- /* "lxml/etree.pyx":2073
+ /* "lxml/etree.pyx":2084
* c_path = tree.xmlGetNodePath(element._c_node)
* _destroyFakeDoc(doc._c_doc, c_doc)
* if c_path is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2075
+ /* "lxml/etree.pyx":2086
* if c_path is NULL:
* raise MemoryError()
* path = funicode(c_path) # <<<<<<<<<<<<<<
* tree.xmlFree(c_path)
* return path
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2075, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_path = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2076
+ /* "lxml/etree.pyx":2087
* raise MemoryError()
* path = funicode(c_path)
* tree.xmlFree(c_path) # <<<<<<<<<<<<<<
*/
xmlFree(__pyx_v_c_path);
- /* "lxml/etree.pyx":2077
+ /* "lxml/etree.pyx":2088
* path = funicode(c_path)
* tree.xmlFree(c_path)
* return path # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_path;
goto __pyx_L0;
- /* "lxml/etree.pyx":2041
+ /* "lxml/etree.pyx":2052
* is_standalone, compression)
*
* def getpath(self, _Element element not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2079
+/* "lxml/etree.pyx":2090
* return path
*
* def getelementpath(self, _Element element not None): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("getelementpath (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2079, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2090, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_14getelementpath(((struct LxmlElementTree *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
/* function exit code */
int __pyx_t_10;
__Pyx_RefNannySetupContext("getelementpath", 0);
- /* "lxml/etree.pyx":2093
+ /* "lxml/etree.pyx":2104
* cdef _Element root
* cdef Py_ssize_t count
* _assertValidNode(element) # <<<<<<<<<<<<<<
* if element._c_node.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"input is not an Element"
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2093, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2104, __pyx_L1_error)
- /* "lxml/etree.pyx":2094
+ /* "lxml/etree.pyx":2105
* cdef Py_ssize_t count
* _assertValidNode(element)
* if element._c_node.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_element->_c_node->type != XML_ELEMENT_NODE) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2095
+ /* "lxml/etree.pyx":2106
* _assertValidNode(element)
* if element._c_node.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"input is not an Element" # <<<<<<<<<<<<<<
* root = self._context_node
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_input_is_not_an_Element, 0, 0);
- __PYX_ERR(0, 2095, __pyx_L1_error)
+ __PYX_ERR(0, 2106, __pyx_L1_error)
- /* "lxml/etree.pyx":2094
+ /* "lxml/etree.pyx":2105
* cdef Py_ssize_t count
* _assertValidNode(element)
* if element._c_node.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2096
+ /* "lxml/etree.pyx":2107
* if element._c_node.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"input is not an Element"
* if self._context_node is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2097
+ /* "lxml/etree.pyx":2108
* raise ValueError, u"input is not an Element"
* if self._context_node is not None:
* root = self._context_node # <<<<<<<<<<<<<<
__pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2096
+ /* "lxml/etree.pyx":2107
* if element._c_node.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"input is not an Element"
* if self._context_node is not None: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/etree.pyx":2098
+ /* "lxml/etree.pyx":2109
* if self._context_node is not None:
* root = self._context_node
* elif self._doc is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (likely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2099
+ /* "lxml/etree.pyx":2110
* root = self._context_node
* elif self._doc is not None:
* root = self._doc.getroot() # <<<<<<<<<<<<<<
* else:
* raise ValueError, u"Element is not in this tree"
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2099, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2099, __pyx_L1_error)
+ if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2110, __pyx_L1_error)
__pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2098
+ /* "lxml/etree.pyx":2109
* if self._context_node is not None:
* root = self._context_node
* elif self._doc is not None: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/etree.pyx":2101
+ /* "lxml/etree.pyx":2112
* root = self._doc.getroot()
* else:
* raise ValueError, u"Element is not in this tree" # <<<<<<<<<<<<<<
*/
/*else*/ {
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Element_is_not_in_this_tree_2, 0, 0);
- __PYX_ERR(0, 2101, __pyx_L1_error)
+ __PYX_ERR(0, 2112, __pyx_L1_error)
}
__pyx_L4:;
- /* "lxml/etree.pyx":2102
+ /* "lxml/etree.pyx":2113
* else:
* raise ValueError, u"Element is not in this tree"
* _assertValidNode(root) # <<<<<<<<<<<<<<
* if element._doc is not root._doc:
* raise ValueError, u"Element is not in this tree"
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2102, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2113, __pyx_L1_error)
- /* "lxml/etree.pyx":2103
+ /* "lxml/etree.pyx":2114
* raise ValueError, u"Element is not in this tree"
* _assertValidNode(root)
* if element._doc is not root._doc: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2104
+ /* "lxml/etree.pyx":2115
* _assertValidNode(root)
* if element._doc is not root._doc:
* raise ValueError, u"Element is not in this tree" # <<<<<<<<<<<<<<
* path = []
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Element_is_not_in_this_tree_2, 0, 0);
- __PYX_ERR(0, 2104, __pyx_L1_error)
+ __PYX_ERR(0, 2115, __pyx_L1_error)
- /* "lxml/etree.pyx":2103
+ /* "lxml/etree.pyx":2114
* raise ValueError, u"Element is not in this tree"
* _assertValidNode(root)
* if element._doc is not root._doc: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2106
+ /* "lxml/etree.pyx":2117
* raise ValueError, u"Element is not in this tree"
*
* path = [] # <<<<<<<<<<<<<<
* c_element = element._c_node
* while c_element is not root._c_node:
*/
- __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2106, __pyx_L1_error)
+ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_path = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2107
+ /* "lxml/etree.pyx":2118
*
* path = []
* c_element = element._c_node # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_element->_c_node;
__pyx_v_c_element = __pyx_t_5;
- /* "lxml/etree.pyx":2108
+ /* "lxml/etree.pyx":2119
* path = []
* c_element = element._c_node
* while c_element is not root._c_node: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_element != __pyx_v_root->_c_node) != 0);
if (!__pyx_t_3) break;
- /* "lxml/etree.pyx":2109
+ /* "lxml/etree.pyx":2120
* c_element = element._c_node
* while c_element is not root._c_node:
* c_name = c_element.name # <<<<<<<<<<<<<<
__pyx_t_6 = __pyx_v_c_element->name;
__pyx_v_c_name = __pyx_t_6;
- /* "lxml/etree.pyx":2110
+ /* "lxml/etree.pyx":2121
* while c_element is not root._c_node:
* c_name = c_element.name
* c_href = _getNs(c_element) # <<<<<<<<<<<<<<
*/
__pyx_v_c_href = _getNs(__pyx_v_c_element);
- /* "lxml/etree.pyx":2111
+ /* "lxml/etree.pyx":2122
* c_name = c_element.name
* c_href = _getNs(c_element)
* tag = _namespacedNameFromNsName(c_href, c_name) # <<<<<<<<<<<<<<
* if c_href is NULL:
* c_href = <const_xmlChar*>b'' # no namespace (NULL is wildcard)
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_c_href, __pyx_v_c_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2111, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_c_href, __pyx_v_c_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2122, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2112
+ /* "lxml/etree.pyx":2123
* c_href = _getNs(c_element)
* tag = _namespacedNameFromNsName(c_href, c_name)
* if c_href is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2113
+ /* "lxml/etree.pyx":2124
* tag = _namespacedNameFromNsName(c_href, c_name)
* if c_href is NULL:
* c_href = <const_xmlChar*>b'' # no namespace (NULL is wildcard) # <<<<<<<<<<<<<<
*/
__pyx_v_c_href = ((const xmlChar *)((const xmlChar *)((char const *)"")));
- /* "lxml/etree.pyx":2112
+ /* "lxml/etree.pyx":2123
* c_href = _getNs(c_element)
* tag = _namespacedNameFromNsName(c_href, c_name)
* if c_href is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2115
+ /* "lxml/etree.pyx":2126
* c_href = <const_xmlChar*>b'' # no namespace (NULL is wildcard)
* # use tag[N] if there are preceding siblings with the same tag
* count = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_count = 0;
- /* "lxml/etree.pyx":2116
+ /* "lxml/etree.pyx":2127
* # use tag[N] if there are preceding siblings with the same tag
* count = 0
* c_node = c_element.prev # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_c_element->prev;
__pyx_v_c_node = __pyx_t_5;
- /* "lxml/etree.pyx":2117
+ /* "lxml/etree.pyx":2128
* count = 0
* c_node = c_element.prev
* while c_node is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
if (!__pyx_t_3) break;
- /* "lxml/etree.pyx":2118
+ /* "lxml/etree.pyx":2129
* c_node = c_element.prev
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2119
+ /* "lxml/etree.pyx":2130
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2120
+ /* "lxml/etree.pyx":2131
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name):
* count += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_count = (__pyx_v_count + 1);
- /* "lxml/etree.pyx":2119
+ /* "lxml/etree.pyx":2130
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2118
+ /* "lxml/etree.pyx":2129
* c_node = c_element.prev
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2121
+ /* "lxml/etree.pyx":2132
* if _tagMatches(c_node, c_href, c_name):
* count += 1
* c_node = c_node.prev # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_t_5;
}
- /* "lxml/etree.pyx":2122
+ /* "lxml/etree.pyx":2133
* count += 1
* c_node = c_node.prev
* if count: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_count != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2123
+ /* "lxml/etree.pyx":2134
* c_node = c_node.prev
* if count:
* tag = f'{tag}[{count+1}]' # <<<<<<<<<<<<<<
* else:
* # use tag[1] if there are following siblings with the same tag
*/
- __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2123, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = 0;
__pyx_t_8 = 127;
- __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_tag, __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2123, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_tag, __pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) : __pyx_t_8;
__pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9);
__pyx_t_7 += 1;
__Pyx_GIVEREF(__pyx_kp_u__36);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_kp_u__36);
- __pyx_t_9 = __Pyx_PyUnicode_From_Py_ssize_t((__pyx_v_count + 1), 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2123, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyUnicode_From_Py_ssize_t((__pyx_v_count + 1), 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_9);
__pyx_t_7 += 1;
__Pyx_GIVEREF(__pyx_kp_u__37);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_kp_u__37);
- __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2123, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_9);
__pyx_t_9 = 0;
- /* "lxml/etree.pyx":2122
+ /* "lxml/etree.pyx":2133
* count += 1
* c_node = c_node.prev
* if count: # <<<<<<<<<<<<<<
goto __pyx_L13;
}
- /* "lxml/etree.pyx":2126
+ /* "lxml/etree.pyx":2137
* else:
* # use tag[1] if there are following siblings with the same tag
* c_node = c_element.next # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_c_element->next;
__pyx_v_c_node = __pyx_t_5;
- /* "lxml/etree.pyx":2127
+ /* "lxml/etree.pyx":2138
* # use tag[1] if there are following siblings with the same tag
* c_node = c_element.next
* while c_node is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
if (!__pyx_t_3) break;
- /* "lxml/etree.pyx":2128
+ /* "lxml/etree.pyx":2139
* c_node = c_element.next
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2129
+ /* "lxml/etree.pyx":2140
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_f_4lxml_5etree__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2130
+ /* "lxml/etree.pyx":2141
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name):
* tag += '[1]' # <<<<<<<<<<<<<<
* break
* c_node = c_node.next
*/
- __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tag, __pyx_kp_s_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2130, __pyx_L1_error)
+ __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_tag, __pyx_kp_s_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2141, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_9);
__pyx_t_9 = 0;
- /* "lxml/etree.pyx":2131
+ /* "lxml/etree.pyx":2142
* if _tagMatches(c_node, c_href, c_name):
* tag += '[1]'
* break # <<<<<<<<<<<<<<
*/
goto __pyx_L15_break;
- /* "lxml/etree.pyx":2129
+ /* "lxml/etree.pyx":2140
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE:
* if _tagMatches(c_node, c_href, c_name): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2128
+ /* "lxml/etree.pyx":2139
* c_node = c_element.next
* while c_node is not NULL:
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2132
+ /* "lxml/etree.pyx":2143
* tag += '[1]'
* break
* c_node = c_node.next # <<<<<<<<<<<<<<
}
__pyx_L13:;
- /* "lxml/etree.pyx":2134
+ /* "lxml/etree.pyx":2145
* c_node = c_node.next
*
* path.append(tag) # <<<<<<<<<<<<<<
* c_element = c_element.parent
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE:
*/
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_path, __pyx_v_tag); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2134, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_path, __pyx_v_tag); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2145, __pyx_L1_error)
- /* "lxml/etree.pyx":2135
+ /* "lxml/etree.pyx":2146
*
* path.append(tag)
* c_element = c_element.parent # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_c_element->parent;
__pyx_v_c_element = __pyx_t_5;
- /* "lxml/etree.pyx":2136
+ /* "lxml/etree.pyx":2147
* path.append(tag)
* c_element = c_element.parent
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_L19_bool_binop_done:;
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2137
+ /* "lxml/etree.pyx":2148
* c_element = c_element.parent
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"Element is not in this tree." # <<<<<<<<<<<<<<
* return '.'
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Element_is_not_in_this_tree, 0, 0);
- __PYX_ERR(0, 2137, __pyx_L1_error)
+ __PYX_ERR(0, 2148, __pyx_L1_error)
- /* "lxml/etree.pyx":2136
+ /* "lxml/etree.pyx":2147
* path.append(tag)
* c_element = c_element.parent
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
}
}
- /* "lxml/etree.pyx":2138
+ /* "lxml/etree.pyx":2149
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"Element is not in this tree."
* if not path: # <<<<<<<<<<<<<<
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2139
+ /* "lxml/etree.pyx":2150
* raise ValueError, u"Element is not in this tree."
* if not path:
* return '.' # <<<<<<<<<<<<<<
__pyx_r = __pyx_kp_s__3;
goto __pyx_L0;
- /* "lxml/etree.pyx":2138
+ /* "lxml/etree.pyx":2149
* if c_element is NULL or c_element.type != tree.XML_ELEMENT_NODE:
* raise ValueError, u"Element is not in this tree."
* if not path: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2140
+ /* "lxml/etree.pyx":2151
* if not path:
* return '.'
* path.reverse() # <<<<<<<<<<<<<<
* return '/'.join(path)
*
*/
- __pyx_t_10 = PyList_Reverse(__pyx_v_path); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2140, __pyx_L1_error)
+ __pyx_t_10 = PyList_Reverse(__pyx_v_path); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2151, __pyx_L1_error)
- /* "lxml/etree.pyx":2141
+ /* "lxml/etree.pyx":2152
* return '.'
* path.reverse()
* return '/'.join(path) # <<<<<<<<<<<<<<
* def getiterator(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__38, __pyx_v_path); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2141, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyString_Join(__pyx_kp_s__38, __pyx_v_path); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2152, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2079
+ /* "lxml/etree.pyx":2090
* return path
*
* def getelementpath(self, _Element element not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2143
+/* "lxml/etree.pyx":2154
* return '/'.join(path)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) __PYX_ERR(0, 2143, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) __PYX_ERR(0, 2154, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("getiterator", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":2160
+ /* "lxml/etree.pyx":2171
* with older versions of lxml or ElementTree.
* """
* root = self.getroot() # <<<<<<<<<<<<<<
* if root is None:
* return ITER_EMPTY
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2160, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2160, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2171, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_root = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2161
+ /* "lxml/etree.pyx":2172
* """
* root = self.getroot()
* if root is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2162
+ /* "lxml/etree.pyx":2173
* root = self.getroot()
* if root is None:
* return ITER_EMPTY # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
goto __pyx_L0;
- /* "lxml/etree.pyx":2161
+ /* "lxml/etree.pyx":2172
* """
* root = self.getroot()
* if root is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2163
+ /* "lxml/etree.pyx":2174
* if root is None:
* return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2164
+ /* "lxml/etree.pyx":2175
* return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return root.getiterator(*tags)
*
*/
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2164, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag);
- __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2164, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_2));
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2163
+ /* "lxml/etree.pyx":2174
* if root is None:
* return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2165
+ /* "lxml/etree.pyx":2176
* if tag is not None:
* tags += (tag,)
* return root.getiterator(*tags) # <<<<<<<<<<<<<<
* def iter(self, tag=None, *tags):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_getiterator); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2165, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_getiterator); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_tags, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2165, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_tags, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2143
+ /* "lxml/etree.pyx":2154
* return '/'.join(path)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2167
+/* "lxml/etree.pyx":2178
* return root.getiterator(*tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) __PYX_ERR(0, 2167, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) __PYX_ERR(0, 2178, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__Pyx_RefNannySetupContext("iter", 0);
__Pyx_INCREF(__pyx_v_tags);
- /* "lxml/etree.pyx":2178
+ /* "lxml/etree.pyx":2189
* see `_Element.iter`.
* """
* root = self.getroot() # <<<<<<<<<<<<<<
* if root is None:
* return ITER_EMPTY
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2178, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2178, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_root = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2179
+ /* "lxml/etree.pyx":2190
* """
* root = self.getroot()
* if root is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2180
+ /* "lxml/etree.pyx":2191
* root = self.getroot()
* if root is None:
* return ITER_EMPTY # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
goto __pyx_L0;
- /* "lxml/etree.pyx":2179
+ /* "lxml/etree.pyx":2190
* """
* root = self.getroot()
* if root is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2181
+ /* "lxml/etree.pyx":2192
* if root is None:
* return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2182
+ /* "lxml/etree.pyx":2193
* return ITER_EMPTY
* if tag is not None:
* tags += (tag,) # <<<<<<<<<<<<<<
* return root.iter(*tags)
*
*/
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2182, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag);
- __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2182, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tags, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2193, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_2));
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2181
+ /* "lxml/etree.pyx":2192
* if root is None:
* return ITER_EMPTY
* if tag is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2183
+ /* "lxml/etree.pyx":2194
* if tag is not None:
* tags += (tag,)
* return root.iter(*tags) # <<<<<<<<<<<<<<
* def find(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_iter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2183, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_iter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2194, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_tags, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_v_tags, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2167
+ /* "lxml/etree.pyx":2178
* return root.getiterator(*tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2185
+/* "lxml/etree.pyx":2196
* return root.iter(*tags)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) __PYX_ERR(0, 2185, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) __PYX_ERR(0, 2196, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2185, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2196, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("find", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":2195
+ /* "lxml/etree.pyx":2206
* prefixes in the path expression.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* root = self.getroot()
* if _isString(path):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2195, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2206, __pyx_L1_error)
- /* "lxml/etree.pyx":2196
+ /* "lxml/etree.pyx":2207
* """
* self._assertHasRoot()
* root = self.getroot() # <<<<<<<<<<<<<<
* if _isString(path):
* if path[:1] == "/":
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2196, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2196, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_root = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2197
+ /* "lxml/etree.pyx":2208
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
__pyx_t_5 = (_isString(__pyx_v_path) != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2198
+ /* "lxml/etree.pyx":2209
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
* path = "." + path
* return root.find(path, namespaces)
*/
- __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2198, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2209, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2199
+ /* "lxml/etree.pyx":2210
* if _isString(path):
* if path[:1] == "/":
* path = "." + path # <<<<<<<<<<<<<<
* return root.find(path, namespaces)
*
*/
- __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2199, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2210, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2198
+ /* "lxml/etree.pyx":2209
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2197
+ /* "lxml/etree.pyx":2208
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2200
+ /* "lxml/etree.pyx":2211
* if path[:1] == "/":
* path = "." + path
* return root.find(path, namespaces) # <<<<<<<<<<<<<<
* def findtext(self, path, default=None, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2200, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_1 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2211, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2211, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
- __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2200, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_1, __pyx_v_namespaces);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2185
+ /* "lxml/etree.pyx":2196
* return root.iter(*tags)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2202
+/* "lxml/etree.pyx":2213
* return root.find(path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) __PYX_ERR(0, 2202, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) __PYX_ERR(0, 2213, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2202, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2213, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.findtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("findtext", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":2212
+ /* "lxml/etree.pyx":2223
* prefixes in the path expression.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* root = self.getroot()
* if _isString(path):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2212, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2223, __pyx_L1_error)
- /* "lxml/etree.pyx":2213
+ /* "lxml/etree.pyx":2224
* """
* self._assertHasRoot()
* root = self.getroot() # <<<<<<<<<<<<<<
* if _isString(path):
* if path[:1] == "/":
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2213, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2213, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_root = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2214
+ /* "lxml/etree.pyx":2225
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
__pyx_t_5 = (_isString(__pyx_v_path) != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2215
+ /* "lxml/etree.pyx":2226
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
* path = "." + path
* return root.findtext(path, default, namespaces)
*/
- __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2215, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2226, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2215, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2226, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2216
+ /* "lxml/etree.pyx":2227
* if _isString(path):
* if path[:1] == "/":
* path = "." + path # <<<<<<<<<<<<<<
* return root.findtext(path, default, namespaces)
*
*/
- __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2216, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2227, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2215
+ /* "lxml/etree.pyx":2226
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2214
+ /* "lxml/etree.pyx":2225
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2217
+ /* "lxml/etree.pyx":2228
* if path[:1] == "/":
* path = "." + path
* return root.findtext(path, default, namespaces) # <<<<<<<<<<<<<<
* def findall(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_findtext); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2217, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_findtext); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_1 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_path, __pyx_v_default, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 3+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2217, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 3+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2228, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_path, __pyx_v_default, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 3+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2217, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 3+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2228, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
- __pyx_t_6 = PyTuple_New(3+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2217, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(3+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_1, __pyx_v_namespaces);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2217, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2202
+ /* "lxml/etree.pyx":2213
* return root.find(path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2219
+/* "lxml/etree.pyx":2230
* return root.findtext(path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) __PYX_ERR(0, 2219, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) __PYX_ERR(0, 2230, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2219, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2230, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.findall", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("findall", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":2229
+ /* "lxml/etree.pyx":2240
* prefixes in the path expression.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* root = self.getroot()
* if _isString(path):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2229, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2240, __pyx_L1_error)
- /* "lxml/etree.pyx":2230
+ /* "lxml/etree.pyx":2241
* """
* self._assertHasRoot()
* root = self.getroot() # <<<<<<<<<<<<<<
* if _isString(path):
* if path[:1] == "/":
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2230, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2230, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2241, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_root = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2231
+ /* "lxml/etree.pyx":2242
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
__pyx_t_5 = (_isString(__pyx_v_path) != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2232
+ /* "lxml/etree.pyx":2243
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
* path = "." + path
* return root.findall(path, namespaces)
*/
- __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2232, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2232, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2243, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2233
+ /* "lxml/etree.pyx":2244
* if _isString(path):
* if path[:1] == "/":
* path = "." + path # <<<<<<<<<<<<<<
* return root.findall(path, namespaces)
*
*/
- __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2233, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2232
+ /* "lxml/etree.pyx":2243
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2231
+ /* "lxml/etree.pyx":2242
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2234
+ /* "lxml/etree.pyx":2245
* if path[:1] == "/":
* path = "." + path
* return root.findall(path, namespaces) # <<<<<<<<<<<<<<
* def iterfind(self, path, namespaces=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2234, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_1 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2245, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2245, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
- __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2234, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_1, __pyx_v_namespaces);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2219
+ /* "lxml/etree.pyx":2230
* return root.findtext(path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2236
+/* "lxml/etree.pyx":2247
* return root.findall(path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) __PYX_ERR(0, 2236, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) __PYX_ERR(0, 2247, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2236, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2247, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.iterfind", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("iterfind", 0);
__Pyx_INCREF(__pyx_v_path);
- /* "lxml/etree.pyx":2246
+ /* "lxml/etree.pyx":2257
* prefixes in the path expression.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* root = self.getroot()
* if _isString(path):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2246, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2257, __pyx_L1_error)
- /* "lxml/etree.pyx":2247
+ /* "lxml/etree.pyx":2258
* """
* self._assertHasRoot()
* root = self.getroot() # <<<<<<<<<<<<<<
* if _isString(path):
* if path[:1] == "/":
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2247, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getroot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2247, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2258, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_root = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2248
+ /* "lxml/etree.pyx":2259
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
__pyx_t_5 = (_isString(__pyx_v_path) != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2249
+ /* "lxml/etree.pyx":2260
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
* path = "." + path
* return root.iterfind(path, namespaces)
*/
- __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2249, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_slice__39, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2260, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2249, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__38, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2260, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2250
+ /* "lxml/etree.pyx":2261
* if _isString(path):
* if path[:1] == "/":
* path = "." + path # <<<<<<<<<<<<<<
* return root.iterfind(path, namespaces)
*
*/
- __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2250, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_kp_s__3, __pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2249
+ /* "lxml/etree.pyx":2260
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2248
+ /* "lxml/etree.pyx":2259
* self._assertHasRoot()
* root = self.getroot()
* if _isString(path): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2251
+ /* "lxml/etree.pyx":2262
* if path[:1] == "/":
* path = "." + path
* return root.iterfind(path, namespaces) # <<<<<<<<<<<<<<
* def xpath(self, _path, *, namespaces=None, extensions=None,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_iterfind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2251, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s_iterfind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_1 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2251, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2262, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_path, __pyx_v_namespaces};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2251, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_1, 2+__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2262, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_2);
} else
#endif
{
- __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2251, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2+__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
__Pyx_INCREF(__pyx_v_namespaces);
__Pyx_GIVEREF(__pyx_v_namespaces);
PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_1, __pyx_v_namespaces);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2251, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2236
+ /* "lxml/etree.pyx":2247
* return root.findall(path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2253
+/* "lxml/etree.pyx":2264
* return root.iterfind(path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
- /* "lxml/etree.pyx":2254
+ /* "lxml/etree.pyx":2265
*
* def xpath(self, _path, *, namespaces=None, extensions=None,
* smart_strings=True, **_variables): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) __PYX_ERR(0, 2253, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) __PYX_ERR(0, 2264, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2253, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2264, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
__Pyx_AddTraceback("lxml.etree._ElementTree.xpath", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_28xpath(((struct LxmlElementTree *)__pyx_v_self), __pyx_v__path, __pyx_v_namespaces, __pyx_v_extensions, __pyx_v_smart_strings, __pyx_v__variables);
- /* "lxml/etree.pyx":2253
+ /* "lxml/etree.pyx":2264
* return root.iterfind(path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("xpath", 0);
- /* "lxml/etree.pyx":2272
+ /* "lxml/etree.pyx":2283
* XPathEvaluator directly.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
* extensions=extensions,
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2272, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2283, __pyx_L1_error)
- /* "lxml/etree.pyx":2273
+ /* "lxml/etree.pyx":2284
* """
* self._assertHasRoot()
* evaluator = XPathDocumentEvaluator(self, namespaces=namespaces, # <<<<<<<<<<<<<<
* extensions=extensions,
* smart_strings=smart_strings)
*/
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2273, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
- __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2273, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_namespaces, __pyx_v_namespaces) < 0) __PYX_ERR(0, 2273, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_namespaces, __pyx_v_namespaces) < 0) __PYX_ERR(0, 2284, __pyx_L1_error)
- /* "lxml/etree.pyx":2274
+ /* "lxml/etree.pyx":2285
* self._assertHasRoot()
* evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
* extensions=extensions, # <<<<<<<<<<<<<<
* smart_strings=smart_strings)
* return evaluator(_path, **_variables)
*/
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 2273, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 2284, __pyx_L1_error)
- /* "lxml/etree.pyx":2275
+ /* "lxml/etree.pyx":2286
* evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
* extensions=extensions,
* smart_strings=smart_strings) # <<<<<<<<<<<<<<
* return evaluator(_path, **_variables)
*
*/
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_smart_strings, __pyx_v_smart_strings) < 0) __PYX_ERR(0, 2273, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_smart_strings, __pyx_v_smart_strings) < 0) __PYX_ERR(0, 2284, __pyx_L1_error)
- /* "lxml/etree.pyx":2273
+ /* "lxml/etree.pyx":2284
* """
* self._assertHasRoot()
* evaluator = XPathDocumentEvaluator(self, namespaces=namespaces, # <<<<<<<<<<<<<<
* extensions=extensions,
* smart_strings=smart_strings)
*/
- __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2273, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_evaluator = ((struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2276
+ /* "lxml/etree.pyx":2287
* extensions=extensions,
* smart_strings=smart_strings)
* return evaluator(_path, **_variables) # <<<<<<<<<<<<<<
* def xslt(self, _xslt, extensions=None, access_control=None, **_kw):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v__path);
__Pyx_GIVEREF(__pyx_v__path);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__path);
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_evaluator), __pyx_t_4, __pyx_v__variables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2276, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_evaluator), __pyx_t_4, __pyx_v__variables); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2253
+ /* "lxml/etree.pyx":2264
* return root.iterfind(path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2278
+/* "lxml/etree.pyx":2289
* return evaluator(_path, **_variables)
*
* def xslt(self, _xslt, extensions=None, access_control=None, **_kw): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__kw, values, pos_args, "xslt") < 0)) __PYX_ERR(0, 2278, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__kw, values, pos_args, "xslt") < 0)) __PYX_ERR(0, 2289, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("xslt", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2278, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("xslt", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2289, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__kw); __pyx_v__kw = 0;
__Pyx_AddTraceback("lxml.etree._ElementTree.xslt", __pyx_clineno, __pyx_lineno, __pyx_filename);
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("xslt", 0);
- /* "lxml/etree.pyx":2292
+ /* "lxml/etree.pyx":2303
* class directly.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* style = XSLT(_xslt, extensions=extensions,
* access_control=access_control)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2292, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2303, __pyx_L1_error)
- /* "lxml/etree.pyx":2293
+ /* "lxml/etree.pyx":2304
* """
* self._assertHasRoot()
* style = XSLT(_xslt, extensions=extensions, # <<<<<<<<<<<<<<
* access_control=access_control)
* return style(self, **_kw)
*/
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2293, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v__xslt);
__Pyx_GIVEREF(__pyx_v__xslt);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__xslt);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2293, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 2293, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_extensions, __pyx_v_extensions) < 0) __PYX_ERR(0, 2304, __pyx_L1_error)
- /* "lxml/etree.pyx":2294
+ /* "lxml/etree.pyx":2305
* self._assertHasRoot()
* style = XSLT(_xslt, extensions=extensions,
* access_control=access_control) # <<<<<<<<<<<<<<
* return style(self, **_kw)
*
*/
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_access_control, __pyx_v_access_control) < 0) __PYX_ERR(0, 2293, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_access_control, __pyx_v_access_control) < 0) __PYX_ERR(0, 2304, __pyx_L1_error)
- /* "lxml/etree.pyx":2293
+ /* "lxml/etree.pyx":2304
* """
* self._assertHasRoot()
* style = XSLT(_xslt, extensions=extensions, # <<<<<<<<<<<<<<
* access_control=access_control)
* return style(self, **_kw)
*/
- __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XSLT), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2293, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_XSLT), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2304, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_style = ((struct __pyx_obj_4lxml_5etree_XSLT *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2295
+ /* "lxml/etree.pyx":2306
* style = XSLT(_xslt, extensions=extensions,
* access_control=access_control)
* return style(self, **_kw) # <<<<<<<<<<<<<<
* def relaxng(self, relaxng):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2295, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_style), __pyx_t_4, __pyx_v__kw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2295, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_v_style), __pyx_t_4, __pyx_v__kw); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2278
+ /* "lxml/etree.pyx":2289
* return evaluator(_path, **_variables)
*
* def xslt(self, _xslt, extensions=None, access_control=None, **_kw): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2297
+/* "lxml/etree.pyx":2308
* return style(self, **_kw)
*
* def relaxng(self, relaxng): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("relaxng", 0);
- /* "lxml/etree.pyx":2311
+ /* "lxml/etree.pyx":2322
* class directly.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* schema = RelaxNG(relaxng)
* return schema.validate(self)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2311, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2322, __pyx_L1_error)
- /* "lxml/etree.pyx":2312
+ /* "lxml/etree.pyx":2323
* """
* self._assertHasRoot()
* schema = RelaxNG(relaxng) # <<<<<<<<<<<<<<
* return schema.validate(self)
*
*/
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_RelaxNG), __pyx_v_relaxng); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2312, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_RelaxNG), __pyx_v_relaxng); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_schema = ((struct __pyx_obj_4lxml_5etree_RelaxNG *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2313
+ /* "lxml/etree.pyx":2324
* self._assertHasRoot()
* schema = RelaxNG(relaxng)
* return schema.validate(self) # <<<<<<<<<<<<<<
* def xmlschema(self, xmlschema):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_validate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2313, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_validate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2313, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2297
+ /* "lxml/etree.pyx":2308
* return style(self, **_kw)
*
* def relaxng(self, relaxng): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2315
+/* "lxml/etree.pyx":2326
* return schema.validate(self)
*
* def xmlschema(self, xmlschema): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("xmlschema", 0);
- /* "lxml/etree.pyx":2329
+ /* "lxml/etree.pyx":2340
* class directly.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* schema = XMLSchema(xmlschema)
* return schema.validate(self)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2329, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2340, __pyx_L1_error)
- /* "lxml/etree.pyx":2330
+ /* "lxml/etree.pyx":2341
* """
* self._assertHasRoot()
* schema = XMLSchema(xmlschema) # <<<<<<<<<<<<<<
* return schema.validate(self)
*
*/
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_XMLSchema), __pyx_v_xmlschema); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2330, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4lxml_5etree_XMLSchema), __pyx_v_xmlschema); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2331
+ /* "lxml/etree.pyx":2342
* self._assertHasRoot()
* schema = XMLSchema(xmlschema)
* return schema.validate(self) # <<<<<<<<<<<<<<
* def xinclude(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_validate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2331, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_validate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2331, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2315
+ /* "lxml/etree.pyx":2326
* return schema.validate(self)
*
* def xmlschema(self, xmlschema): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2333
+/* "lxml/etree.pyx":2344
* return schema.validate(self)
*
* def xinclude(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("xinclude", 0);
- /* "lxml/etree.pyx":2345
+ /* "lxml/etree.pyx":2356
* due to restrictions of libxml2 <= 2.6.29.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* XInclude()(self._context_node)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2345, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2356, __pyx_L1_error)
- /* "lxml/etree.pyx":2346
+ /* "lxml/etree.pyx":2357
* """
* self._assertHasRoot()
* XInclude()(self._context_node) # <<<<<<<<<<<<<<
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True,
*/
- __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree_XInclude)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2346, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree_XInclude)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_self->_context_node)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self->_context_node));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2346, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2333
+ /* "lxml/etree.pyx":2344
* return schema.validate(self)
*
* def xinclude(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2348
+/* "lxml/etree.pyx":2359
* XInclude()(self._context_node)
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True, # <<<<<<<<<<<<<<
values[2] = ((PyObject *)Py_True);
values[3] = ((PyObject *)__pyx_int_0);
- /* "lxml/etree.pyx":2349
+ /* "lxml/etree.pyx":2360
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True,
* compression=0, inclusive_ns_prefixes=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_c14n") < 0)) __PYX_ERR(0, 2348, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_c14n") < 0)) __PYX_ERR(0, 2359, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("write_c14n", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2348, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("write_c14n", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2359, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._ElementTree.write_c14n", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_38write_c14n(((struct LxmlElementTree *)__pyx_v_self), __pyx_v_file, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_compression, __pyx_v_inclusive_ns_prefixes);
- /* "lxml/etree.pyx":2348
+ /* "lxml/etree.pyx":2359
* XInclude()(self._context_node)
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True, # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("write_c14n", 0);
__Pyx_INCREF(__pyx_v_compression);
- /* "lxml/etree.pyx":2367
+ /* "lxml/etree.pyx":2378
* of the namespace node's parent element.
* """
* self._assertHasRoot() # <<<<<<<<<<<<<<
* _assertValidNode(self._context_node)
* if compression is None or compression < 0:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2367, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2378, __pyx_L1_error)
- /* "lxml/etree.pyx":2368
+ /* "lxml/etree.pyx":2379
* """
* self._assertHasRoot()
* _assertValidNode(self._context_node) # <<<<<<<<<<<<<<
*/
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_2)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2368, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_2)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2379, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2369
+ /* "lxml/etree.pyx":2380
* self._assertHasRoot()
* _assertValidNode(self._context_node)
* if compression is None or compression < 0: # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2369, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2369, __pyx_L1_error)
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2380, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2380, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L4_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2370
+ /* "lxml/etree.pyx":2381
* _assertValidNode(self._context_node)
* if compression is None or compression < 0:
* compression = 0 # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_int_0);
__Pyx_DECREF_SET(__pyx_v_compression, __pyx_int_0);
- /* "lxml/etree.pyx":2369
+ /* "lxml/etree.pyx":2380
* self._assertHasRoot()
* _assertValidNode(self._context_node)
* if compression is None or compression < 0: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2372
+ /* "lxml/etree.pyx":2383
* compression = 0
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments, # <<<<<<<<<<<<<<
*/
__pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2372, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2372, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2383, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2383, __pyx_L1_error)
- /* "lxml/etree.pyx":2373
+ /* "lxml/etree.pyx":2384
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
* compression, inclusive_ns_prefixes) # <<<<<<<<<<<<<<
*
* cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node):
*/
- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2373, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_compression); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2384, __pyx_L1_error)
- /* "lxml/etree.pyx":2372
+ /* "lxml/etree.pyx":2383
* compression = 0
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments, # <<<<<<<<<<<<<<
* compression, inclusive_ns_prefixes)
*
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_t_3, __pyx_t_5, __pyx_t_1, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2372, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_2), __pyx_t_3, __pyx_t_5, __pyx_t_1, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2383, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":2348
+ /* "lxml/etree.pyx":2359
* XInclude()(self._context_node)
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2375
+/* "lxml/etree.pyx":2386
* compression, inclusive_ns_prefixes)
*
* cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_elementTreeFactory", 0);
- /* "lxml/etree.pyx":2376
+ /* "lxml/etree.pyx":2387
*
* cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node):
* return _newElementTree(doc, context_node, _ElementTree) # <<<<<<<<<<<<<<
* cdef _ElementTree _newElementTree(_Document doc, _Element context_node,
*/
__Pyx_XDECREF(((PyObject *)__pyx_r));
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, __pyx_v_context_node, ((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2376, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, __pyx_v_context_node, ((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2387, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = ((struct LxmlElementTree *)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2375
+ /* "lxml/etree.pyx":2386
* compression, inclusive_ns_prefixes)
*
* cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2378
+/* "lxml/etree.pyx":2389
* return _newElementTree(doc, context_node, _ElementTree)
*
* cdef _ElementTree _newElementTree(_Document doc, _Element context_node, # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_newElementTree", 0);
__Pyx_INCREF((PyObject *)__pyx_v_context_node);
- /* "lxml/etree.pyx":2381
+ /* "lxml/etree.pyx":2392
* object baseclass):
* cdef _ElementTree result
* result = baseclass() # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2381, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ElementTree))))) __PYX_ERR(0, 2381, __pyx_L1_error)
+ if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ElementTree))))) __PYX_ERR(0, 2392, __pyx_L1_error)
__pyx_v_result = ((struct LxmlElementTree *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2382
+ /* "lxml/etree.pyx":2393
* cdef _ElementTree result
* result = baseclass()
* if context_node is None and doc is not None: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2383
+ /* "lxml/etree.pyx":2394
* result = baseclass()
* if context_node is None and doc is not None:
* context_node = doc.getroot() # <<<<<<<<<<<<<<
* if context_node is None:
* _assertValidDoc(doc)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2383, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2394, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2383, __pyx_L1_error)
+ if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2394, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_context_node, ((struct LxmlElement *)__pyx_t_1));
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2382
+ /* "lxml/etree.pyx":2393
* cdef _ElementTree result
* result = baseclass()
* if context_node is None and doc is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2384
+ /* "lxml/etree.pyx":2395
* if context_node is None and doc is not None:
* context_node = doc.getroot()
* if context_node is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":2385
+ /* "lxml/etree.pyx":2396
* context_node = doc.getroot()
* if context_node is None:
* _assertValidDoc(doc) # <<<<<<<<<<<<<<
* result._doc = doc
* else:
*/
- __pyx_t_7 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2385, __pyx_L1_error)
+ __pyx_t_7 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2396, __pyx_L1_error)
- /* "lxml/etree.pyx":2386
+ /* "lxml/etree.pyx":2397
* if context_node is None:
* _assertValidDoc(doc)
* result._doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_result->_doc));
__pyx_v_result->_doc = __pyx_v_doc;
- /* "lxml/etree.pyx":2384
+ /* "lxml/etree.pyx":2395
* if context_node is None and doc is not None:
* context_node = doc.getroot()
* if context_node is None: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/etree.pyx":2388
+ /* "lxml/etree.pyx":2399
* result._doc = doc
* else:
* _assertValidNode(context_node) # <<<<<<<<<<<<<<
* return result
*/
/*else*/ {
- __pyx_t_7 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_context_node); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2388, __pyx_L1_error)
+ __pyx_t_7 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_context_node); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 2399, __pyx_L1_error)
}
__pyx_L6:;
- /* "lxml/etree.pyx":2389
+ /* "lxml/etree.pyx":2400
* else:
* _assertValidNode(context_node)
* result._context_node = context_node # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_result->_context_node));
__pyx_v_result->_context_node = __pyx_v_context_node;
- /* "lxml/etree.pyx":2390
+ /* "lxml/etree.pyx":2401
* _assertValidNode(context_node)
* result._context_node = context_node
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":2378
+ /* "lxml/etree.pyx":2389
* return _newElementTree(doc, context_node, _ElementTree)
*
* cdef _ElementTree _newElementTree(_Document doc, _Element context_node, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2399
+/* "lxml/etree.pyx":2410
* """
* cdef _Element _element
* def __cinit__(self, _Element element not None): # <<<<<<<<<<<<<<
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2399, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2410, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2399, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2410, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Attrib.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2399, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2410, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_7_Attrib___cinit__(((struct __pyx_obj_4lxml_5etree__Attrib *)__pyx_v_self), __pyx_v_element);
/* function exit code */
int __pyx_t_1;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2400
+ /* "lxml/etree.pyx":2411
* cdef _Element _element
* def __cinit__(self, _Element element not None):
* _assertValidNode(element) # <<<<<<<<<<<<<<
* self._element = element
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2400, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2411, __pyx_L1_error)
- /* "lxml/etree.pyx":2401
+ /* "lxml/etree.pyx":2412
* def __cinit__(self, _Element element not None):
* _assertValidNode(element)
* self._element = element # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_element));
__pyx_v_self->_element = __pyx_v_element;
- /* "lxml/etree.pyx":2399
+ /* "lxml/etree.pyx":2410
* """
* cdef _Element _element
* def __cinit__(self, _Element element not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2404
+/* "lxml/etree.pyx":2415
*
* # MANIPULATORS
* def __setitem__(self, key, value): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("__setitem__", 0);
- /* "lxml/etree.pyx":2405
+ /* "lxml/etree.pyx":2416
* # MANIPULATORS
* def __setitem__(self, key, value):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2405, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2416, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2406
+ /* "lxml/etree.pyx":2417
* def __setitem__(self, key, value):
* _assertValidNode(self._element)
* _setAttributeValue(self._element, key, value) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2406, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2417, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2404
+ /* "lxml/etree.pyx":2415
*
* # MANIPULATORS
* def __setitem__(self, key, value): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2408
+/* "lxml/etree.pyx":2419
* _setAttributeValue(self._element, key, value)
*
* def __delitem__(self, key): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("__delitem__", 0);
- /* "lxml/etree.pyx":2409
+ /* "lxml/etree.pyx":2420
*
* def __delitem__(self, key):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2409, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2420, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2410
+ /* "lxml/etree.pyx":2421
* def __delitem__(self, key):
* _assertValidNode(self._element)
* _delAttribute(self._element, key) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_1), __pyx_v_key); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2410, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_1), __pyx_v_key); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2421, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2408
+ /* "lxml/etree.pyx":2419
* _setAttributeValue(self._element, key, value)
*
* def __delitem__(self, key): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2412
+/* "lxml/etree.pyx":2423
* _delAttribute(self._element, key)
*
* def update(self, sequence_or_dict): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("update", 0);
__Pyx_INCREF(__pyx_v_sequence_or_dict);
- /* "lxml/etree.pyx":2413
+ /* "lxml/etree.pyx":2424
*
* def update(self, sequence_or_dict):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2413, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2424, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2414
+ /* "lxml/etree.pyx":2425
* def update(self, sequence_or_dict):
* _assertValidNode(self._element)
* if isinstance(sequence_or_dict, (dict, _Attrib)): # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2415
+ /* "lxml/etree.pyx":2426
* _assertValidNode(self._element)
* if isinstance(sequence_or_dict, (dict, _Attrib)):
* sequence_or_dict = sequence_or_dict.items() # <<<<<<<<<<<<<<
* for key, value in sequence_or_dict:
* _setAttributeValue(self._element, key, value)
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_sequence_or_dict, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2415, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_sequence_or_dict, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
}
__pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2415, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF_SET(__pyx_v_sequence_or_dict, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2414
+ /* "lxml/etree.pyx":2425
* def update(self, sequence_or_dict):
* _assertValidNode(self._element)
* if isinstance(sequence_or_dict, (dict, _Attrib)): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2416
+ /* "lxml/etree.pyx":2427
* if isinstance(sequence_or_dict, (dict, _Attrib)):
* sequence_or_dict = sequence_or_dict.items()
* for key, value in sequence_or_dict: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_sequence_or_dict; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
} else {
- __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sequence_or_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sequence_or_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2427, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2427, __pyx_L1_error)
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2427, __pyx_L1_error)
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 2416, __pyx_L1_error)
+ else __PYX_ERR(0, 2427, __pyx_L1_error)
}
break;
}
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 2416, __pyx_L1_error)
+ __PYX_ERR(0, 2427, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx_t_10);
#else
- __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2416, __pyx_L1_error)
+ __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
__Pyx_GOTREF(__pyx_t_7);
index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L8_unpacking_failed;
__Pyx_GOTREF(__pyx_t_10);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(0, 2416, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(0, 2427, __pyx_L1_error)
__pyx_t_12 = NULL;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L9_unpacking_done;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_12 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 2416, __pyx_L1_error)
+ __PYX_ERR(0, 2427, __pyx_L1_error)
__pyx_L9_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10);
__pyx_t_10 = 0;
- /* "lxml/etree.pyx":2417
+ /* "lxml/etree.pyx":2428
* sequence_or_dict = sequence_or_dict.items()
* for key, value in sequence_or_dict:
* _setAttributeValue(self._element, key, value) # <<<<<<<<<<<<<<
*/
__pyx_t_6 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_6);
- __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_6), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2417, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_6), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2428, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":2416
+ /* "lxml/etree.pyx":2427
* if isinstance(sequence_or_dict, (dict, _Attrib)):
* sequence_or_dict = sequence_or_dict.items()
* for key, value in sequence_or_dict: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2412
+ /* "lxml/etree.pyx":2423
* _delAttribute(self._element, key)
*
* def update(self, sequence_or_dict): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2419
+/* "lxml/etree.pyx":2430
* _setAttributeValue(self._element, key, value)
*
* def pop(self, key, *default): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "pop") < 0)) __PYX_ERR(0, 2419, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "pop") < 0)) __PYX_ERR(0, 2430, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("pop", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2419, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("pop", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2430, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_default); __pyx_v_default = 0;
__Pyx_AddTraceback("lxml.etree._Attrib.pop", __pyx_clineno, __pyx_lineno, __pyx_filename);
int __pyx_t_6;
__Pyx_RefNannySetupContext("pop", 0);
- /* "lxml/etree.pyx":2420
+ /* "lxml/etree.pyx":2431
*
* def pop(self, key, *default):
* if len(default) > 1: # <<<<<<<<<<<<<<
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}"
* _assertValidNode(self._element)
*/
- __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_default); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2420, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_default); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2431, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_1 > 1) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2421
+ /* "lxml/etree.pyx":2432
* def pop(self, key, *default):
* if len(default) > 1:
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}" # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None)
*/
- __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_default); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2421, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t((__pyx_t_1 + 1), 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2421, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_default); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2432, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t((__pyx_t_1 + 1), 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pop_expected_at_most_2_arguments, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2421, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_pop_expected_at_most_2_arguments, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_4, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(0, 2421, __pyx_L1_error)
+ __PYX_ERR(0, 2432, __pyx_L1_error)
- /* "lxml/etree.pyx":2420
+ /* "lxml/etree.pyx":2431
*
* def pop(self, key, *default):
* if len(default) > 1: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2422
+ /* "lxml/etree.pyx":2433
* if len(default) > 1:
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}"
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_4 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2422, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2433, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":2423
+ /* "lxml/etree.pyx":2434
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}"
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None) # <<<<<<<<<<<<<<
*/
__pyx_t_4 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_4), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2423, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_4), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_result = __pyx_t_3;
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2424
+ /* "lxml/etree.pyx":2435
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None)
* if result is None: # <<<<<<<<<<<<<<
__pyx_t_6 = (__pyx_t_2 != 0);
if (__pyx_t_6) {
- /* "lxml/etree.pyx":2425
+ /* "lxml/etree.pyx":2436
* result = _getAttributeValue(self._element, key, None)
* if result is None:
* if not default: # <<<<<<<<<<<<<<
__pyx_t_2 = ((!__pyx_t_6) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2426
+ /* "lxml/etree.pyx":2437
* if result is None:
* if not default:
* raise KeyError, key # <<<<<<<<<<<<<<
* else:
*/
__Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
- __PYX_ERR(0, 2426, __pyx_L1_error)
+ __PYX_ERR(0, 2437, __pyx_L1_error)
- /* "lxml/etree.pyx":2425
+ /* "lxml/etree.pyx":2436
* result = _getAttributeValue(self._element, key, None)
* if result is None:
* if not default: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2427
+ /* "lxml/etree.pyx":2438
* if not default:
* raise KeyError, key
* result = default[0] # <<<<<<<<<<<<<<
* else:
* _delAttribute(self._element, key)
*/
- __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_default, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2427, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_default, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2438, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2424
+ /* "lxml/etree.pyx":2435
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None)
* if result is None: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/etree.pyx":2429
+ /* "lxml/etree.pyx":2440
* result = default[0]
* else:
* _delAttribute(self._element, key) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_t_3 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_5 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_3), __pyx_v_key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2429, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_3), __pyx_v_key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2440, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L4:;
- /* "lxml/etree.pyx":2430
+ /* "lxml/etree.pyx":2441
* else:
* _delAttribute(self._element, key)
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":2419
+ /* "lxml/etree.pyx":2430
* _setAttributeValue(self._element, key, value)
*
* def pop(self, key, *default): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2432
+/* "lxml/etree.pyx":2443
* return result
*
* def clear(self): # <<<<<<<<<<<<<<
int __pyx_t_4;
__Pyx_RefNannySetupContext("clear", 0);
- /* "lxml/etree.pyx":2433
+ /* "lxml/etree.pyx":2444
*
* def clear(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2433, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2444, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2434
+ /* "lxml/etree.pyx":2445
* def clear(self):
* _assertValidNode(self._element)
* cdef xmlNode* c_node = self._element._c_node # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_self->_element->_c_node;
__pyx_v_c_node = __pyx_t_3;
- /* "lxml/etree.pyx":2435
+ /* "lxml/etree.pyx":2446
* _assertValidNode(self._element)
* cdef xmlNode* c_node = self._element._c_node
* while c_node.properties is not NULL: # <<<<<<<<<<<<<<
__pyx_t_4 = ((__pyx_v_c_node->properties != NULL) != 0);
if (!__pyx_t_4) break;
- /* "lxml/etree.pyx":2436
+ /* "lxml/etree.pyx":2447
* cdef xmlNode* c_node = self._element._c_node
* while c_node.properties is not NULL:
* tree.xmlRemoveProp(c_node.properties) # <<<<<<<<<<<<<<
(void)(xmlRemoveProp(__pyx_v_c_node->properties));
}
- /* "lxml/etree.pyx":2432
+ /* "lxml/etree.pyx":2443
* return result
*
* def clear(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2439
+/* "lxml/etree.pyx":2450
*
* # ACCESSORS
* def __repr__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/etree.pyx":2440
+ /* "lxml/etree.pyx":2451
* # ACCESSORS
* def __repr__(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2440, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2451, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2441
+ /* "lxml/etree.pyx":2452
* def __repr__(self):
* _assertValidNode(self._element)
* return repr(dict( _collectAttributes(self._element._c_node, 3) )) # <<<<<<<<<<<<<<
* def __copy__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2441, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2441, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2441, __pyx_L1_error)
+ __pyx_t_1 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2439
+ /* "lxml/etree.pyx":2450
*
* # ACCESSORS
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2443
+/* "lxml/etree.pyx":2454
* return repr(dict( _collectAttributes(self._element._c_node, 3) ))
*
* def __copy__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__copy__", 0);
- /* "lxml/etree.pyx":2444
+ /* "lxml/etree.pyx":2455
*
* def __copy__(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2444, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2455, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2445
+ /* "lxml/etree.pyx":2456
* def __copy__(self):
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3)) # <<<<<<<<<<<<<<
* def __deepcopy__(self, memo):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2445, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2456, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2445, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2456, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2443
+ /* "lxml/etree.pyx":2454
* return repr(dict( _collectAttributes(self._element._c_node, 3) ))
*
* def __copy__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2447
+/* "lxml/etree.pyx":2458
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__deepcopy__", 0);
- /* "lxml/etree.pyx":2448
+ /* "lxml/etree.pyx":2459
*
* def __deepcopy__(self, memo):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2448, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2459, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2449
+ /* "lxml/etree.pyx":2460
* def __deepcopy__(self, memo):
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3)) # <<<<<<<<<<<<<<
* def __getitem__(self, key):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2449, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2449, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2460, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2447
+ /* "lxml/etree.pyx":2458
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2451
+/* "lxml/etree.pyx":2462
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __getitem__(self, key): # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("__getitem__", 0);
- /* "lxml/etree.pyx":2452
+ /* "lxml/etree.pyx":2463
*
* def __getitem__(self, key):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2452, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2463, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2453
+ /* "lxml/etree.pyx":2464
* def __getitem__(self, key):
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2453, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_result = __pyx_t_3;
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2454
+ /* "lxml/etree.pyx":2465
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None)
* if result is None: # <<<<<<<<<<<<<<
__pyx_t_5 = (__pyx_t_4 != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":2455
+ /* "lxml/etree.pyx":2466
* result = _getAttributeValue(self._element, key, None)
* if result is None:
* raise KeyError, key # <<<<<<<<<<<<<<
*
*/
__Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
- __PYX_ERR(0, 2455, __pyx_L1_error)
+ __PYX_ERR(0, 2466, __pyx_L1_error)
- /* "lxml/etree.pyx":2454
+ /* "lxml/etree.pyx":2465
* _assertValidNode(self._element)
* result = _getAttributeValue(self._element, key, None)
* if result is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2456
+ /* "lxml/etree.pyx":2467
* if result is None:
* raise KeyError, key
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":2451
+ /* "lxml/etree.pyx":2462
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __getitem__(self, key): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2458
+/* "lxml/etree.pyx":2469
* return result
*
* def __bool__(self): # <<<<<<<<<<<<<<
int __pyx_t_4;
__Pyx_RefNannySetupContext("__bool__", 0);
- /* "lxml/etree.pyx":2459
+ /* "lxml/etree.pyx":2470
*
* def __bool__(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2459, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2470, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2460
+ /* "lxml/etree.pyx":2471
* def __bool__(self):
* _assertValidNode(self._element)
* cdef xmlAttr* c_attr = self._element._c_node.properties # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_self->_element->_c_node->properties;
__pyx_v_c_attr = __pyx_t_3;
- /* "lxml/etree.pyx":2461
+ /* "lxml/etree.pyx":2472
* _assertValidNode(self._element)
* cdef xmlAttr* c_attr = self._element._c_node.properties
* while c_attr is not NULL: # <<<<<<<<<<<<<<
__pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
if (!__pyx_t_4) break;
- /* "lxml/etree.pyx":2462
+ /* "lxml/etree.pyx":2473
* cdef xmlAttr* c_attr = self._element._c_node.properties
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE: # <<<<<<<<<<<<<<
__pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2463
+ /* "lxml/etree.pyx":2474
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE:
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2462
+ /* "lxml/etree.pyx":2473
* cdef xmlAttr* c_attr = self._element._c_node.properties
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2464
+ /* "lxml/etree.pyx":2475
* if c_attr.type == tree.XML_ATTRIBUTE_NODE:
* return 1
* c_attr = c_attr.next # <<<<<<<<<<<<<<
__pyx_v_c_attr = __pyx_t_3;
}
- /* "lxml/etree.pyx":2465
+ /* "lxml/etree.pyx":2476
* return 1
* c_attr = c_attr.next
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2458
+ /* "lxml/etree.pyx":2469
* return result
*
* def __bool__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2467
+/* "lxml/etree.pyx":2478
* return 0
*
* def __len__(self): # <<<<<<<<<<<<<<
int __pyx_t_4;
__Pyx_RefNannySetupContext("__len__", 0);
- /* "lxml/etree.pyx":2468
+ /* "lxml/etree.pyx":2479
*
* def __len__(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2468, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2479, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2469
+ /* "lxml/etree.pyx":2480
* def __len__(self):
* _assertValidNode(self._element)
* cdef xmlAttr* c_attr = self._element._c_node.properties # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_self->_element->_c_node->properties;
__pyx_v_c_attr = __pyx_t_3;
- /* "lxml/etree.pyx":2470
+ /* "lxml/etree.pyx":2481
* _assertValidNode(self._element)
* cdef xmlAttr* c_attr = self._element._c_node.properties
* cdef Py_ssize_t c = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_c = 0;
- /* "lxml/etree.pyx":2471
+ /* "lxml/etree.pyx":2482
* cdef xmlAttr* c_attr = self._element._c_node.properties
* cdef Py_ssize_t c = 0
* while c_attr is not NULL: # <<<<<<<<<<<<<<
__pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
if (!__pyx_t_4) break;
- /* "lxml/etree.pyx":2472
+ /* "lxml/etree.pyx":2483
* cdef Py_ssize_t c = 0
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE: # <<<<<<<<<<<<<<
__pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2473
+ /* "lxml/etree.pyx":2484
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE:
* c += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_c = (__pyx_v_c + 1);
- /* "lxml/etree.pyx":2472
+ /* "lxml/etree.pyx":2483
* cdef Py_ssize_t c = 0
* while c_attr is not NULL:
* if c_attr.type == tree.XML_ATTRIBUTE_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2474
+ /* "lxml/etree.pyx":2485
* if c_attr.type == tree.XML_ATTRIBUTE_NODE:
* c += 1
* c_attr = c_attr.next # <<<<<<<<<<<<<<
__pyx_v_c_attr = __pyx_t_3;
}
- /* "lxml/etree.pyx":2475
+ /* "lxml/etree.pyx":2486
* c += 1
* c_attr = c_attr.next
* return c # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c;
goto __pyx_L0;
- /* "lxml/etree.pyx":2467
+ /* "lxml/etree.pyx":2478
* return 0
*
* def __len__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2477
+/* "lxml/etree.pyx":2488
* return c
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 2477, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(0, 2488, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2477, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2488, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Attrib.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("get", 0);
- /* "lxml/etree.pyx":2478
+ /* "lxml/etree.pyx":2489
*
* def get(self, key, default=None):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2478, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2489, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2479
+ /* "lxml/etree.pyx":2490
* def get(self, key, default=None):
* _assertValidNode(self._element)
* return _getAttributeValue(self._element, key, default) # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2479, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2490, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2477
+ /* "lxml/etree.pyx":2488
* return c
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2481
+/* "lxml/etree.pyx":2492
* return _getAttributeValue(self._element, key, default)
*
* def keys(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("keys", 0);
- /* "lxml/etree.pyx":2482
+ /* "lxml/etree.pyx":2493
*
* def keys(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2482, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2493, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2483
+ /* "lxml/etree.pyx":2494
* def keys(self):
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 1) # <<<<<<<<<<<<<<
* def __iter__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2483, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2494, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2481
+ /* "lxml/etree.pyx":2492
* return _getAttributeValue(self._element, key, default)
*
* def keys(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2485
+/* "lxml/etree.pyx":2496
* return _collectAttributes(self._element._c_node, 1)
*
* def __iter__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2486
+ /* "lxml/etree.pyx":2497
*
* def __iter__(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2486, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2497, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2487
+ /* "lxml/etree.pyx":2498
* def __iter__(self):
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 1)) # <<<<<<<<<<<<<<
* def iterkeys(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2487, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2487, __pyx_L1_error)
+ __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2485
+ /* "lxml/etree.pyx":2496
* return _collectAttributes(self._element._c_node, 1)
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2489
+/* "lxml/etree.pyx":2500
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def iterkeys(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("iterkeys", 0);
- /* "lxml/etree.pyx":2490
+ /* "lxml/etree.pyx":2501
*
* def iterkeys(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2490, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2501, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2491
+ /* "lxml/etree.pyx":2502
* def iterkeys(self):
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 1)) # <<<<<<<<<<<<<<
* def values(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2491, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2502, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2491, __pyx_L1_error)
+ __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2502, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2489
+ /* "lxml/etree.pyx":2500
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def iterkeys(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2493
+/* "lxml/etree.pyx":2504
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def values(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("values", 0);
- /* "lxml/etree.pyx":2494
+ /* "lxml/etree.pyx":2505
*
* def values(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2494, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2505, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2495
+ /* "lxml/etree.pyx":2506
* def values(self):
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 2) # <<<<<<<<<<<<<<
* def itervalues(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2495, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2493
+ /* "lxml/etree.pyx":2504
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def values(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2497
+/* "lxml/etree.pyx":2508
* return _collectAttributes(self._element._c_node, 2)
*
* def itervalues(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("itervalues", 0);
- /* "lxml/etree.pyx":2498
+ /* "lxml/etree.pyx":2509
*
* def itervalues(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2498, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2509, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2499
+ /* "lxml/etree.pyx":2510
* def itervalues(self):
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 2)) # <<<<<<<<<<<<<<
* def items(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2499, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2510, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2499, __pyx_L1_error)
+ __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2510, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2497
+ /* "lxml/etree.pyx":2508
* return _collectAttributes(self._element._c_node, 2)
*
* def itervalues(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2501
+/* "lxml/etree.pyx":2512
* return iter(_collectAttributes(self._element._c_node, 2))
*
* def items(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("items", 0);
- /* "lxml/etree.pyx":2502
+ /* "lxml/etree.pyx":2513
*
* def items(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2502, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2513, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2503
+ /* "lxml/etree.pyx":2514
* def items(self):
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 3) # <<<<<<<<<<<<<<
* def iteritems(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2503, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2501
+ /* "lxml/etree.pyx":2512
* return iter(_collectAttributes(self._element._c_node, 2))
*
* def items(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2505
+/* "lxml/etree.pyx":2516
* return _collectAttributes(self._element._c_node, 3)
*
* def iteritems(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("iteritems", 0);
- /* "lxml/etree.pyx":2506
+ /* "lxml/etree.pyx":2517
*
* def iteritems(self):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2506, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2507
+ /* "lxml/etree.pyx":2518
* def iteritems(self):
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 3)) # <<<<<<<<<<<<<<
* def has_key(self, key):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2507, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2518, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2507, __pyx_L1_error)
+ __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2518, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2505
+ /* "lxml/etree.pyx":2516
* return _collectAttributes(self._element._c_node, 3)
*
* def iteritems(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2509
+/* "lxml/etree.pyx":2520
* return iter(_collectAttributes(self._element._c_node, 3))
*
* def has_key(self, key): # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("has_key", 0);
- /* "lxml/etree.pyx":2510
+ /* "lxml/etree.pyx":2521
*
* def has_key(self, key):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2510, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2511
+ /* "lxml/etree.pyx":2522
* def has_key(self, key):
* _assertValidNode(self._element)
* return key in self # <<<<<<<<<<<<<<
* def __contains__(self, key):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, ((PyObject *)__pyx_v_self), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2511, __pyx_L1_error)
- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2511, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, ((PyObject *)__pyx_v_self), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2522, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2522, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2509
+ /* "lxml/etree.pyx":2520
* return iter(_collectAttributes(self._element._c_node, 3))
*
* def has_key(self, key): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2513
+/* "lxml/etree.pyx":2524
* return key in self
*
* def __contains__(self, key): # <<<<<<<<<<<<<<
int __pyx_t_7;
__Pyx_RefNannySetupContext("__contains__", 0);
- /* "lxml/etree.pyx":2514
+ /* "lxml/etree.pyx":2525
*
* def __contains__(self, key):
* _assertValidNode(self._element) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2514, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2525, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2516
+ /* "lxml/etree.pyx":2527
* _assertValidNode(self._element)
* cdef xmlNode* c_node
* ns, tag = _getNsTag(key) # <<<<<<<<<<<<<<
* c_node = self._element._c_node
* c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2516, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(__pyx_t_1 != Py_None)) {
PyObject* sequence = __pyx_t_1;
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 2516, __pyx_L1_error)
+ __PYX_ERR(0, 2527, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
#else
- __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2516, __pyx_L1_error)
+ __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2516, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2516, __pyx_L1_error)
+ __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2527, __pyx_L1_error)
}
__pyx_v_ns = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_v_tag = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2517
+ /* "lxml/etree.pyx":2528
* cdef xmlNode* c_node
* ns, tag = _getNsTag(key)
* c_node = self._element._c_node # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_self->_element->_c_node;
__pyx_v_c_node = __pyx_t_5;
- /* "lxml/etree.pyx":2518
+ /* "lxml/etree.pyx":2529
* ns, tag = _getNsTag(key)
* c_node = self._element._c_node
* c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns) # <<<<<<<<<<<<<<
}
__pyx_v_c_href = __pyx_t_6;
- /* "lxml/etree.pyx":2519
+ /* "lxml/etree.pyx":2530
* c_node = self._element._c_node
* c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
* return 1 if tree.xmlHasNsProp(c_node, _xcstr(tag), c_href) else 0 # <<<<<<<<<<<<<<
__pyx_r = __pyx_t_2;
goto __pyx_L0;
- /* "lxml/etree.pyx":2513
+ /* "lxml/etree.pyx":2524
* return key in self
*
* def __contains__(self, key): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2521
+/* "lxml/etree.pyx":2532
* return 1 if tree.xmlHasNsProp(c_node, _xcstr(tag), c_href) else 0
*
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__richcmp__", 0);
__Pyx_INCREF(__pyx_v_other);
- /* "lxml/etree.pyx":2522
+ /* "lxml/etree.pyx":2533
*
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "lxml/etree.pyx":2523
+ /* "lxml/etree.pyx":2534
* def __richcmp__(self, other, int op):
* try:
* one = dict(self.items()) # <<<<<<<<<<<<<<
* if not isinstance(other, dict):
* other = dict(other)
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2523, __pyx_L3_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2534, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2523, __pyx_L3_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2534, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2523, __pyx_L3_error)
+ __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2534, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_one = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/etree.pyx":2524
+ /* "lxml/etree.pyx":2535
* try:
* one = dict(self.items())
* if not isinstance(other, dict): # <<<<<<<<<<<<<<
__pyx_t_8 = ((!(__pyx_t_7 != 0)) != 0);
if (__pyx_t_8) {
- /* "lxml/etree.pyx":2525
+ /* "lxml/etree.pyx":2536
* one = dict(self.items())
* if not isinstance(other, dict):
* other = dict(other) # <<<<<<<<<<<<<<
* except (TypeError, ValueError):
* return NotImplemented
*/
- __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_other); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2525, __pyx_L3_error)
+ __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_other); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2536, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_other, __pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/etree.pyx":2524
+ /* "lxml/etree.pyx":2535
* try:
* one = dict(self.items())
* if not isinstance(other, dict): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2522
+ /* "lxml/etree.pyx":2533
*
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":2526
+ /* "lxml/etree.pyx":2537
* if not isinstance(other, dict):
* other = dict(other)
* except (TypeError, ValueError): # <<<<<<<<<<<<<<
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError);
if (__pyx_t_9) {
__Pyx_AddTraceback("lxml.etree._Attrib.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 2526, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(0, 2537, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_6);
- /* "lxml/etree.pyx":2527
+ /* "lxml/etree.pyx":2538
* other = dict(other)
* except (TypeError, ValueError):
* return NotImplemented # <<<<<<<<<<<<<<
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "lxml/etree.pyx":2522
+ /* "lxml/etree.pyx":2533
*
* def __richcmp__(self, other, int op):
* try: # <<<<<<<<<<<<<<
__pyx_L8_try_end:;
}
- /* "lxml/etree.pyx":2528
+ /* "lxml/etree.pyx":2539
* except (TypeError, ValueError):
* return NotImplemented
* return python.PyObject_RichCompare(one, other, op) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_6 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2528, __pyx_L1_error)
+ __pyx_t_6 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2539, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2521
+ /* "lxml/etree.pyx":2532
* return 1 if tree.xmlHasNsProp(c_node, _xcstr(tag), c_href) else 0
*
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2540
+/* "lxml/etree.pyx":2551
* cdef xmlAttr* _c_attr
* cdef int _keysvalues # 1 - keys, 2 - values, 3 - items (key, value)
* def __iter__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2541
+ /* "lxml/etree.pyx":2552
* cdef int _keysvalues # 1 - keys, 2 - values, 3 - items (key, value)
* def __iter__(self):
* return self # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self);
goto __pyx_L0;
- /* "lxml/etree.pyx":2540
+ /* "lxml/etree.pyx":2551
* cdef xmlAttr* _c_attr
* cdef int _keysvalues # 1 - keys, 2 - values, 3 - items (key, value)
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2543
+/* "lxml/etree.pyx":2554
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__next__", 0);
- /* "lxml/etree.pyx":2545
+ /* "lxml/etree.pyx":2556
* def __next__(self):
* cdef xmlAttr* c_attr
* if self._node is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2546
+ /* "lxml/etree.pyx":2557
* cdef xmlAttr* c_attr
* if self._node is None:
* raise StopIteration # <<<<<<<<<<<<<<
* while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
*/
__Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
- __PYX_ERR(0, 2546, __pyx_L1_error)
+ __PYX_ERR(0, 2557, __pyx_L1_error)
- /* "lxml/etree.pyx":2545
+ /* "lxml/etree.pyx":2556
* def __next__(self):
* cdef xmlAttr* c_attr
* if self._node is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2547
+ /* "lxml/etree.pyx":2558
* if self._node is None:
* raise StopIteration
* c_attr = self._c_attr # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_self->_c_attr;
__pyx_v_c_attr = __pyx_t_3;
- /* "lxml/etree.pyx":2548
+ /* "lxml/etree.pyx":2559
* raise StopIteration
* c_attr = self._c_attr
* while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE: # <<<<<<<<<<<<<<
__pyx_L6_bool_binop_done:;
if (!__pyx_t_2) break;
- /* "lxml/etree.pyx":2549
+ /* "lxml/etree.pyx":2560
* c_attr = self._c_attr
* while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
* c_attr = c_attr.next # <<<<<<<<<<<<<<
__pyx_v_c_attr = __pyx_t_3;
}
- /* "lxml/etree.pyx":2550
+ /* "lxml/etree.pyx":2561
* while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
* c_attr = c_attr.next
* if c_attr is NULL: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_c_attr == NULL) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2551
+ /* "lxml/etree.pyx":2562
* c_attr = c_attr.next
* if c_attr is NULL:
* self._node = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_node));
__pyx_v_self->_node = ((struct LxmlElement *)Py_None);
- /* "lxml/etree.pyx":2552
+ /* "lxml/etree.pyx":2563
* if c_attr is NULL:
* self._node = None
* raise StopIteration # <<<<<<<<<<<<<<
* self._c_attr = c_attr.next
*/
__Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
- __PYX_ERR(0, 2552, __pyx_L1_error)
+ __PYX_ERR(0, 2563, __pyx_L1_error)
- /* "lxml/etree.pyx":2550
+ /* "lxml/etree.pyx":2561
* while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
* c_attr = c_attr.next
* if c_attr is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2554
+ /* "lxml/etree.pyx":2565
* raise StopIteration
*
* self._c_attr = c_attr.next # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_c_attr->next;
__pyx_v_self->_c_attr = __pyx_t_3;
- /* "lxml/etree.pyx":2555
+ /* "lxml/etree.pyx":2566
*
* self._c_attr = c_attr.next
* if self._keysvalues == 1: # <<<<<<<<<<<<<<
switch (__pyx_v_self->_keysvalues) {
case 1:
- /* "lxml/etree.pyx":2556
+ /* "lxml/etree.pyx":2567
* self._c_attr = c_attr.next
* if self._keysvalues == 1:
* return _namespacedName(<xmlNode*>c_attr) # <<<<<<<<<<<<<<
* return _attributeValue(self._node._c_node, c_attr)
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2556, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2555
+ /* "lxml/etree.pyx":2566
*
* self._c_attr = c_attr.next
* if self._keysvalues == 1: # <<<<<<<<<<<<<<
break;
case 2:
- /* "lxml/etree.pyx":2558
+ /* "lxml/etree.pyx":2569
* return _namespacedName(<xmlNode*>c_attr)
* elif self._keysvalues == 2:
* return _attributeValue(self._node._c_node, c_attr) # <<<<<<<<<<<<<<
* return (_namespacedName(<xmlNode*>c_attr),
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2558, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2569, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2557
+ /* "lxml/etree.pyx":2568
* if self._keysvalues == 1:
* return _namespacedName(<xmlNode*>c_attr)
* elif self._keysvalues == 2: # <<<<<<<<<<<<<<
break;
default:
- /* "lxml/etree.pyx":2560
+ /* "lxml/etree.pyx":2571
* return _attributeValue(self._node._c_node, c_attr)
* else:
* return (_namespacedName(<xmlNode*>c_attr), # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2560, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- /* "lxml/etree.pyx":2561
+ /* "lxml/etree.pyx":2572
* else:
* return (_namespacedName(<xmlNode*>c_attr),
* _attributeValue(self._node._c_node, c_attr)) # <<<<<<<<<<<<<<
*
* cdef object _attributeIteratorFactory(_Element element, int keysvalues):
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2561, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "lxml/etree.pyx":2560
+ /* "lxml/etree.pyx":2571
* return _attributeValue(self._node._c_node, c_attr)
* else:
* return (_namespacedName(<xmlNode*>c_attr), # <<<<<<<<<<<<<<
* _attributeValue(self._node._c_node, c_attr))
*
*/
- __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2560, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2571, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
break;
}
- /* "lxml/etree.pyx":2543
+ /* "lxml/etree.pyx":2554
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2563
+/* "lxml/etree.pyx":2574
* _attributeValue(self._node._c_node, c_attr))
*
* cdef object _attributeIteratorFactory(_Element element, int keysvalues): # <<<<<<<<<<<<<<
xmlAttr *__pyx_t_3;
__Pyx_RefNannySetupContext("_attributeIteratorFactory", 0);
- /* "lxml/etree.pyx":2565
+ /* "lxml/etree.pyx":2576
* cdef object _attributeIteratorFactory(_Element element, int keysvalues):
* cdef _AttribIterator attribs
* if element._c_node.properties is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_element->_c_node->properties == NULL) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2566
+ /* "lxml/etree.pyx":2577
* cdef _AttribIterator attribs
* if element._c_node.properties is NULL:
* return ITER_EMPTY # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_4lxml_5etree_ITER_EMPTY;
goto __pyx_L0;
- /* "lxml/etree.pyx":2565
+ /* "lxml/etree.pyx":2576
* cdef object _attributeIteratorFactory(_Element element, int keysvalues):
* cdef _AttribIterator attribs
* if element._c_node.properties is NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2567
+ /* "lxml/etree.pyx":2578
* if element._c_node.properties is NULL:
* return ITER_EMPTY
* attribs = _AttribIterator() # <<<<<<<<<<<<<<
* attribs._node = element
* attribs._c_attr = element._c_node.properties
*/
- __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree__AttribIterator)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2567, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree__AttribIterator)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2578, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_attribs = ((struct __pyx_obj_4lxml_5etree__AttribIterator *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2568
+ /* "lxml/etree.pyx":2579
* return ITER_EMPTY
* attribs = _AttribIterator()
* attribs._node = element # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_attribs->_node));
__pyx_v_attribs->_node = __pyx_v_element;
- /* "lxml/etree.pyx":2569
+ /* "lxml/etree.pyx":2580
* attribs = _AttribIterator()
* attribs._node = element
* attribs._c_attr = element._c_node.properties # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_v_element->_c_node->properties;
__pyx_v_attribs->_c_attr = __pyx_t_3;
- /* "lxml/etree.pyx":2570
+ /* "lxml/etree.pyx":2581
* attribs._node = element
* attribs._c_attr = element._c_node.properties
* attribs._keysvalues = keysvalues # <<<<<<<<<<<<<<
*/
__pyx_v_attribs->_keysvalues = __pyx_v_keysvalues;
- /* "lxml/etree.pyx":2571
+ /* "lxml/etree.pyx":2582
* attribs._c_attr = element._c_node.properties
* attribs._keysvalues = keysvalues
* return attribs # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_attribs);
goto __pyx_L0;
- /* "lxml/etree.pyx":2563
+ /* "lxml/etree.pyx":2574
* _attributeValue(self._node._c_node, c_attr))
*
* cdef object _attributeIteratorFactory(_Element element, int keysvalues): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2583
+/* "lxml/etree.pyx":2594
* cdef char* _href
* cdef char* _name
* cdef _initTagMatch(self, tag): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_initTagMatch", 0);
- /* "lxml/etree.pyx":2584
+ /* "lxml/etree.pyx":2595
* cdef char* _name
* cdef _initTagMatch(self, tag):
* self._href = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_href = NULL;
- /* "lxml/etree.pyx":2585
+ /* "lxml/etree.pyx":2596
* cdef _initTagMatch(self, tag):
* self._href = NULL
* self._name = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_name = NULL;
- /* "lxml/etree.pyx":2586
+ /* "lxml/etree.pyx":2597
* self._href = NULL
* self._name = NULL
* if tag is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2587
+ /* "lxml/etree.pyx":2598
* self._name = NULL
* if tag is None:
* self._node_type = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_type = 0;
- /* "lxml/etree.pyx":2586
+ /* "lxml/etree.pyx":2597
* self._href = NULL
* self._name = NULL
* if tag is None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2588
+ /* "lxml/etree.pyx":2599
* if tag is None:
* self._node_type = 0
* elif tag is Comment: # <<<<<<<<<<<<<<
* self._node_type = tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2588, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Comment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2589
+ /* "lxml/etree.pyx":2600
* self._node_type = 0
* elif tag is Comment:
* self._node_type = tree.XML_COMMENT_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_type = XML_COMMENT_NODE;
- /* "lxml/etree.pyx":2588
+ /* "lxml/etree.pyx":2599
* if tag is None:
* self._node_type = 0
* elif tag is Comment: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2590
+ /* "lxml/etree.pyx":2601
* elif tag is Comment:
* self._node_type = tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction: # <<<<<<<<<<<<<<
* self._node_type = tree.XML_PI_NODE
* elif tag is Entity:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2590, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2601, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2591
+ /* "lxml/etree.pyx":2602
* self._node_type = tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
* self._node_type = tree.XML_PI_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_type = XML_PI_NODE;
- /* "lxml/etree.pyx":2590
+ /* "lxml/etree.pyx":2601
* elif tag is Comment:
* self._node_type = tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2592
+ /* "lxml/etree.pyx":2603
* elif tag is ProcessingInstruction:
* self._node_type = tree.XML_PI_NODE
* elif tag is Entity: # <<<<<<<<<<<<<<
* self._node_type = tree.XML_ENTITY_REF_NODE
* elif tag is Element:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Entity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2592, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Entity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2593
+ /* "lxml/etree.pyx":2604
* self._node_type = tree.XML_PI_NODE
* elif tag is Entity:
* self._node_type = tree.XML_ENTITY_REF_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_type = XML_ENTITY_REF_NODE;
- /* "lxml/etree.pyx":2592
+ /* "lxml/etree.pyx":2603
* elif tag is ProcessingInstruction:
* self._node_type = tree.XML_PI_NODE
* elif tag is Entity: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2594
+ /* "lxml/etree.pyx":2605
* elif tag is Entity:
* self._node_type = tree.XML_ENTITY_REF_NODE
* elif tag is Element: # <<<<<<<<<<<<<<
* self._node_type = tree.XML_ELEMENT_NODE
* else:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Element); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2594, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Element); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2605, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2595
+ /* "lxml/etree.pyx":2606
* self._node_type = tree.XML_ENTITY_REF_NODE
* elif tag is Element:
* self._node_type = tree.XML_ELEMENT_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_type = XML_ELEMENT_NODE;
- /* "lxml/etree.pyx":2594
+ /* "lxml/etree.pyx":2605
* elif tag is Entity:
* self._node_type = tree.XML_ENTITY_REF_NODE
* elif tag is Element: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2597
+ /* "lxml/etree.pyx":2608
* self._node_type = tree.XML_ELEMENT_NODE
* else:
* self._node_type = tree.XML_ELEMENT_NODE # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_self->_node_type = XML_ELEMENT_NODE;
- /* "lxml/etree.pyx":2598
+ /* "lxml/etree.pyx":2609
* else:
* self._node_type = tree.XML_ELEMENT_NODE
* self._pystrings = _getNsTag(tag) # <<<<<<<<<<<<<<
* if self._pystrings[0] is not None:
* self._href = _cstr(self._pystrings[0])
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2598, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_pystrings);
__pyx_v_self->_pystrings = __pyx_t_3;
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2599
+ /* "lxml/etree.pyx":2610
* self._node_type = tree.XML_ELEMENT_NODE
* self._pystrings = _getNsTag(tag)
* if self._pystrings[0] is not None: # <<<<<<<<<<<<<<
* self._href = _cstr(self._pystrings[0])
* self._name = _cstr(self._pystrings[1])
*/
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2599, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2610, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = (__pyx_t_3 != Py_None);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2600
+ /* "lxml/etree.pyx":2611
* self._pystrings = _getNsTag(tag)
* if self._pystrings[0] is not None:
* self._href = _cstr(self._pystrings[0]) # <<<<<<<<<<<<<<
* self._name = _cstr(self._pystrings[1])
* if self._name[0] == c'*' and self._name[1] == c'\0':
*/
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2600, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_self->_href = PyBytes_AS_STRING(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":2599
+ /* "lxml/etree.pyx":2610
* self._node_type = tree.XML_ELEMENT_NODE
* self._pystrings = _getNsTag(tag)
* if self._pystrings[0] is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2601
+ /* "lxml/etree.pyx":2612
* if self._pystrings[0] is not None:
* self._href = _cstr(self._pystrings[0])
* self._name = _cstr(self._pystrings[1]) # <<<<<<<<<<<<<<
* if self._name[0] == c'*' and self._name[1] == c'\0':
* self._name = NULL
*/
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2601, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2612, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_self->_name = PyBytes_AS_STRING(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":2602
+ /* "lxml/etree.pyx":2613
* self._href = _cstr(self._pystrings[0])
* self._name = _cstr(self._pystrings[1])
* if self._name[0] == c'*' and self._name[1] == c'\0': # <<<<<<<<<<<<<<
__pyx_L6_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2603
+ /* "lxml/etree.pyx":2614
* self._name = _cstr(self._pystrings[1])
* if self._name[0] == c'*' and self._name[1] == c'\0':
* self._name = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_name = NULL;
- /* "lxml/etree.pyx":2602
+ /* "lxml/etree.pyx":2613
* self._href = _cstr(self._pystrings[0])
* self._name = _cstr(self._pystrings[1])
* if self._name[0] == c'*' and self._name[1] == c'\0': # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":2583
+ /* "lxml/etree.pyx":2594
* cdef char* _href
* cdef char* _name
* cdef _initTagMatch(self, tag): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2613
+/* "lxml/etree.pyx":2624
* cdef _Element _node
* cdef _node_to_node_function _next_element
* def __iter__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2614
+ /* "lxml/etree.pyx":2625
* cdef _node_to_node_function _next_element
* def __iter__(self):
* return self # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self);
goto __pyx_L0;
- /* "lxml/etree.pyx":2613
+ /* "lxml/etree.pyx":2624
* cdef _Element _node
* cdef _node_to_node_function _next_element
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2616
+/* "lxml/etree.pyx":2627
* return self
*
* cdef void _storeNext(self, _Element node): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("_storeNext", 0);
- /* "lxml/etree.pyx":2618
+ /* "lxml/etree.pyx":2629
* cdef void _storeNext(self, _Element node):
* cdef xmlNode* c_node
* c_node = self._next_element(node._c_node) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_node->_c_node);
- /* "lxml/etree.pyx":2619
+ /* "lxml/etree.pyx":2630
* cdef xmlNode* c_node
* c_node = self._next_element(node._c_node)
* while c_node is not NULL and \ # <<<<<<<<<<<<<<
goto __pyx_L5_bool_binop_done;
}
- /* "lxml/etree.pyx":2620
+ /* "lxml/etree.pyx":2631
* c_node = self._next_element(node._c_node)
* while c_node is not NULL and \
* self._node_type != 0 and \ # <<<<<<<<<<<<<<
goto __pyx_L5_bool_binop_done;
}
- /* "lxml/etree.pyx":2621
+ /* "lxml/etree.pyx":2632
* while c_node is not NULL and \
* self._node_type != 0 and \
* (<tree.xmlElementType>self._node_type != c_node.type or # <<<<<<<<<<<<<<
goto __pyx_L5_bool_binop_done;
}
- /* "lxml/etree.pyx":2622
+ /* "lxml/etree.pyx":2633
* self._node_type != 0 and \
* (<tree.xmlElementType>self._node_type != c_node.type or
* not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)): # <<<<<<<<<<<<<<
__pyx_L5_bool_binop_done:;
if (!__pyx_t_1) break;
- /* "lxml/etree.pyx":2623
+ /* "lxml/etree.pyx":2634
* (<tree.xmlElementType>self._node_type != c_node.type or
* not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
* c_node = self._next_element(c_node) # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_c_node);
}
- /* "lxml/etree.pyx":2624
+ /* "lxml/etree.pyx":2635
* not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
* c_node = self._next_element(c_node)
* if c_node is NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2625
+ /* "lxml/etree.pyx":2636
* c_node = self._next_element(c_node)
* if c_node is NULL:
* self._node = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_node));
__pyx_v_self->_node = ((struct LxmlElement *)Py_None);
- /* "lxml/etree.pyx":2624
+ /* "lxml/etree.pyx":2635
* not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
* c_node = self._next_element(c_node)
* if c_node is NULL: # <<<<<<<<<<<<<<
goto __pyx_L9;
}
- /* "lxml/etree.pyx":2628
+ /* "lxml/etree.pyx":2639
* else:
* # Python ref:
* self._node = _elementFactory(node._doc, c_node) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_t_3 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2628, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GIVEREF(__pyx_t_4);
}
__pyx_L9:;
- /* "lxml/etree.pyx":2616
+ /* "lxml/etree.pyx":2627
* return self
*
* cdef void _storeNext(self, _Element node): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "lxml/etree.pyx":2630
+/* "lxml/etree.pyx":2641
* self._node = _elementFactory(node._doc, c_node)
*
* def __next__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__next__", 0);
- /* "lxml/etree.pyx":2633
+ /* "lxml/etree.pyx":2644
* cdef xmlNode* c_node
* cdef _Element current_node
* if self._node is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":2634
+ /* "lxml/etree.pyx":2645
* cdef _Element current_node
* if self._node is None:
* raise StopIteration # <<<<<<<<<<<<<<
* current_node = self._node
*/
__Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
- __PYX_ERR(0, 2634, __pyx_L1_error)
+ __PYX_ERR(0, 2645, __pyx_L1_error)
- /* "lxml/etree.pyx":2633
+ /* "lxml/etree.pyx":2644
* cdef xmlNode* c_node
* cdef _Element current_node
* if self._node is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2636
+ /* "lxml/etree.pyx":2647
* raise StopIteration
* # Python ref:
* current_node = self._node # <<<<<<<<<<<<<<
__pyx_v_current_node = ((struct LxmlElement *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2637
+ /* "lxml/etree.pyx":2648
* # Python ref:
* current_node = self._node
* self._storeNext(current_node) # <<<<<<<<<<<<<<
*/
((struct __pyx_vtabstruct_4lxml_5etree__ElementIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->_storeNext(__pyx_v_self, __pyx_v_current_node);
- /* "lxml/etree.pyx":2638
+ /* "lxml/etree.pyx":2649
* current_node = self._node
* self._storeNext(current_node)
* return current_node # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_current_node);
goto __pyx_L0;
- /* "lxml/etree.pyx":2630
+ /* "lxml/etree.pyx":2641
* self._node = _elementFactory(node._doc, c_node)
*
* def __next__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2653
+/* "lxml/etree.pyx":2664
* cdef int _node_types
*
* def __cinit__(self, tags): # <<<<<<<<<<<<<<
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2653, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2664, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2653, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2664, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._MultiTagMatcher.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2654
+ /* "lxml/etree.pyx":2665
*
* def __cinit__(self, tags):
* self._py_tags = [] # <<<<<<<<<<<<<<
* self.initTagMatch(tags)
*
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2654, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2665, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_py_tags);
__pyx_v_self->_py_tags = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2655
+ /* "lxml/etree.pyx":2666
* def __cinit__(self, tags):
* self._py_tags = []
* self.initTagMatch(tags) # <<<<<<<<<<<<<<
*
* def __dealloc__(self):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(__pyx_v_self, __pyx_v_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2655, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(__pyx_v_self, __pyx_v_tags); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2653
+ /* "lxml/etree.pyx":2664
* cdef int _node_types
*
* def __cinit__(self, tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2657
+/* "lxml/etree.pyx":2668
* self.initTagMatch(tags)
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__dealloc__", 0);
- /* "lxml/etree.pyx":2658
+ /* "lxml/etree.pyx":2669
*
* def __dealloc__(self):
* self._clear() # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(__pyx_v_self);
- /* "lxml/etree.pyx":2657
+ /* "lxml/etree.pyx":2668
* self.initTagMatch(tags)
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "lxml/etree.pyx":2660
+/* "lxml/etree.pyx":2671
* self._clear()
*
* cdef bint rejectsAll(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("rejectsAll", 0);
- /* "lxml/etree.pyx":2661
+ /* "lxml/etree.pyx":2672
*
* cdef bint rejectsAll(self):
* return not self._tag_count and not self._node_types # <<<<<<<<<<<<<<
__pyx_r = __pyx_t_1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2660
+ /* "lxml/etree.pyx":2671
* self._clear()
*
* cdef bint rejectsAll(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2663
+/* "lxml/etree.pyx":2674
* return not self._tag_count and not self._node_types
*
* cdef bint rejectsAllAttributes(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("rejectsAllAttributes", 0);
- /* "lxml/etree.pyx":2664
+ /* "lxml/etree.pyx":2675
*
* cdef bint rejectsAllAttributes(self):
* return not self._tag_count # <<<<<<<<<<<<<<
__pyx_r = (!(__pyx_v_self->_tag_count != 0));
goto __pyx_L0;
- /* "lxml/etree.pyx":2663
+ /* "lxml/etree.pyx":2674
* return not self._tag_count and not self._node_types
*
* cdef bint rejectsAllAttributes(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2666
+/* "lxml/etree.pyx":2677
* return not self._tag_count
*
* cdef bint matchesType(self, int node_type): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("matchesType", 0);
- /* "lxml/etree.pyx":2667
+ /* "lxml/etree.pyx":2678
*
* cdef bint matchesType(self, int node_type):
* if node_type == tree.XML_ELEMENT_NODE and self._tag_count: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2668
+ /* "lxml/etree.pyx":2679
* cdef bint matchesType(self, int node_type):
* if node_type == tree.XML_ELEMENT_NODE and self._tag_count:
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2667
+ /* "lxml/etree.pyx":2678
*
* cdef bint matchesType(self, int node_type):
* if node_type == tree.XML_ELEMENT_NODE and self._tag_count: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2669
+ /* "lxml/etree.pyx":2680
* if node_type == tree.XML_ELEMENT_NODE and self._tag_count:
* return True
* return self._node_types & (1 << node_type) # <<<<<<<<<<<<<<
__pyx_r = (__pyx_v_self->_node_types & (1 << __pyx_v_node_type));
goto __pyx_L0;
- /* "lxml/etree.pyx":2666
+ /* "lxml/etree.pyx":2677
* return not self._tag_count
*
* cdef bint matchesType(self, int node_type): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2671
+/* "lxml/etree.pyx":2682
* return self._node_types & (1 << node_type)
*
* cdef void _clear(self): # <<<<<<<<<<<<<<
size_t __pyx_t_4;
__Pyx_RefNannySetupContext("_clear", 0);
- /* "lxml/etree.pyx":2673
+ /* "lxml/etree.pyx":2684
* cdef void _clear(self):
* cdef size_t i, count
* count = self._tag_count # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_self->_tag_count;
__pyx_v_count = __pyx_t_1;
- /* "lxml/etree.pyx":2674
+ /* "lxml/etree.pyx":2685
* cdef size_t i, count
* count = self._tag_count
* self._tag_count = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_tag_count = 0;
- /* "lxml/etree.pyx":2675
+ /* "lxml/etree.pyx":2686
* count = self._tag_count
* self._tag_count = 0
* if self._cached_tags: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_self->_cached_tags != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2676
+ /* "lxml/etree.pyx":2687
* self._tag_count = 0
* if self._cached_tags:
* for i in xrange(count): # <<<<<<<<<<<<<<
for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
- /* "lxml/etree.pyx":2677
+ /* "lxml/etree.pyx":2688
* if self._cached_tags:
* for i in xrange(count):
* cpython.ref.Py_XDECREF(self._cached_tags[i].href) # <<<<<<<<<<<<<<
Py_XDECREF((__pyx_v_self->_cached_tags[__pyx_v_i]).href);
}
- /* "lxml/etree.pyx":2678
+ /* "lxml/etree.pyx":2689
* for i in xrange(count):
* cpython.ref.Py_XDECREF(self._cached_tags[i].href)
* python.lxml_free(self._cached_tags) # <<<<<<<<<<<<<<
*/
lxml_free(__pyx_v_self->_cached_tags);
- /* "lxml/etree.pyx":2679
+ /* "lxml/etree.pyx":2690
* cpython.ref.Py_XDECREF(self._cached_tags[i].href)
* python.lxml_free(self._cached_tags)
* self._cached_tags = NULL # <<<<<<<<<<<<<<
*/
__pyx_v_self->_cached_tags = NULL;
- /* "lxml/etree.pyx":2675
+ /* "lxml/etree.pyx":2686
* count = self._tag_count
* self._tag_count = 0
* if self._cached_tags: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2671
+ /* "lxml/etree.pyx":2682
* return self._node_types & (1 << node_type)
*
* cdef void _clear(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyFinishContext();
}
-/* "lxml/etree.pyx":2681
+/* "lxml/etree.pyx":2692
* self._cached_tags = NULL
*
* cdef initTagMatch(self, tags): # <<<<<<<<<<<<<<
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("initTagMatch", 0);
- /* "lxml/etree.pyx":2682
+ /* "lxml/etree.pyx":2693
*
* cdef initTagMatch(self, tags):
* self._cached_doc = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
__pyx_v_self->_cached_doc = ((struct LxmlDocument *)Py_None);
- /* "lxml/etree.pyx":2683
+ /* "lxml/etree.pyx":2694
* cdef initTagMatch(self, tags):
* self._cached_doc = None
* del self._py_tags[:] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_py_tags == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 2683, __pyx_L1_error)
+ __PYX_ERR(0, 2694, __pyx_L1_error)
}
- if (__Pyx_PyObject_DelSlice(__pyx_v_self->_py_tags, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(0, 2683, __pyx_L1_error)
+ if (__Pyx_PyObject_DelSlice(__pyx_v_self->_py_tags, 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) __PYX_ERR(0, 2694, __pyx_L1_error)
- /* "lxml/etree.pyx":2684
+ /* "lxml/etree.pyx":2695
* self._cached_doc = None
* del self._py_tags[:]
* self._clear() # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(__pyx_v_self);
- /* "lxml/etree.pyx":2685
+ /* "lxml/etree.pyx":2696
* del self._py_tags[:]
* self._clear()
* if tags is None or tags == (): # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_3;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_4 = PyObject_RichCompare(__pyx_v_tags, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2685, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2685, __pyx_L1_error)
+ __pyx_t_4 = PyObject_RichCompare(__pyx_v_tags, __pyx_empty_tuple, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2696, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2696, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2687
+ /* "lxml/etree.pyx":2698
* if tags is None or tags == ():
* # no selection in tags argument => match anything
* self._node_types = ( # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = ((((1 << XML_COMMENT_NODE) | (1 << XML_PI_NODE)) | (1 << XML_ENTITY_REF_NODE)) | (1 << XML_ELEMENT_NODE));
- /* "lxml/etree.pyx":2685
+ /* "lxml/etree.pyx":2696
* del self._py_tags[:]
* self._clear()
* if tags is None or tags == (): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2693
+ /* "lxml/etree.pyx":2704
* 1 << tree.XML_ELEMENT_NODE)
* else:
* self._node_types = 0 # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_self->_node_types = 0;
- /* "lxml/etree.pyx":2694
+ /* "lxml/etree.pyx":2705
* else:
* self._node_types = 0
* self._storeTags(tags, set()) # <<<<<<<<<<<<<<
*
* cdef _storeTags(self, tag, set seen):
*/
- __pyx_t_4 = PySet_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2694, __pyx_L1_error)
+ __pyx_t_4 = PySet_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_tags, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2694, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_tags, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_L3:;
- /* "lxml/etree.pyx":2681
+ /* "lxml/etree.pyx":2692
* self._cached_tags = NULL
*
* cdef initTagMatch(self, tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2696
+/* "lxml/etree.pyx":2707
* self._storeTags(tags, set())
*
* cdef _storeTags(self, tag, set seen): # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_8)(PyObject *);
__Pyx_RefNannySetupContext("_storeTags", 0);
- /* "lxml/etree.pyx":2697
+ /* "lxml/etree.pyx":2708
*
* cdef _storeTags(self, tag, set seen):
* if tag is Comment: # <<<<<<<<<<<<<<
* self._node_types |= 1 << tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Comment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2697, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Comment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2698
+ /* "lxml/etree.pyx":2709
* cdef _storeTags(self, tag, set seen):
* if tag is Comment:
* self._node_types |= 1 << tree.XML_COMMENT_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = (__pyx_v_self->_node_types | (1 << XML_COMMENT_NODE));
- /* "lxml/etree.pyx":2697
+ /* "lxml/etree.pyx":2708
*
* cdef _storeTags(self, tag, set seen):
* if tag is Comment: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2699
+ /* "lxml/etree.pyx":2710
* if tag is Comment:
* self._node_types |= 1 << tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction: # <<<<<<<<<<<<<<
* self._node_types |= 1 << tree.XML_PI_NODE
* elif tag is Entity:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2699, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2710, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = (__pyx_v_tag == __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2700
+ /* "lxml/etree.pyx":2711
* self._node_types |= 1 << tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction:
* self._node_types |= 1 << tree.XML_PI_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = (__pyx_v_self->_node_types | (1 << XML_PI_NODE));
- /* "lxml/etree.pyx":2699
+ /* "lxml/etree.pyx":2710
* if tag is Comment:
* self._node_types |= 1 << tree.XML_COMMENT_NODE
* elif tag is ProcessingInstruction: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2701
+ /* "lxml/etree.pyx":2712
* elif tag is ProcessingInstruction:
* self._node_types |= 1 << tree.XML_PI_NODE
* elif tag is Entity: # <<<<<<<<<<<<<<
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
* elif tag is Element:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Entity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2701, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Entity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2702
+ /* "lxml/etree.pyx":2713
* self._node_types |= 1 << tree.XML_PI_NODE
* elif tag is Entity:
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = (__pyx_v_self->_node_types | (1 << XML_ENTITY_REF_NODE));
- /* "lxml/etree.pyx":2701
+ /* "lxml/etree.pyx":2712
* elif tag is ProcessingInstruction:
* self._node_types |= 1 << tree.XML_PI_NODE
* elif tag is Entity: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2703
+ /* "lxml/etree.pyx":2714
* elif tag is Entity:
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
* elif tag is Element: # <<<<<<<<<<<<<<
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Element); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2703, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Element); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2714, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = (__pyx_v_tag == __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2704
+ /* "lxml/etree.pyx":2715
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
* elif tag is Element:
* self._node_types |= 1 << tree.XML_ELEMENT_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = (__pyx_v_self->_node_types | (1 << XML_ELEMENT_NODE));
- /* "lxml/etree.pyx":2703
+ /* "lxml/etree.pyx":2714
* elif tag is Entity:
* self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
* elif tag is Element: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2705
+ /* "lxml/etree.pyx":2716
* elif tag is Element:
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag): # <<<<<<<<<<<<<<
__pyx_t_2 = (_isString(__pyx_v_tag) != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2706
+ /* "lxml/etree.pyx":2717
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag):
* if tag in seen: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_seen == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 2706, __pyx_L1_error)
+ __PYX_ERR(0, 2717, __pyx_L1_error)
}
- __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_v_tag, __pyx_v_seen, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2706, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_v_tag, __pyx_v_seen, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2717, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2707
+ /* "lxml/etree.pyx":2718
* elif python._isString(tag):
* if tag in seen:
* return # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/etree.pyx":2706
+ /* "lxml/etree.pyx":2717
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag):
* if tag in seen: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2708
+ /* "lxml/etree.pyx":2719
* if tag in seen:
* return
* seen.add(tag) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_seen == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add");
- __PYX_ERR(0, 2708, __pyx_L1_error)
+ __PYX_ERR(0, 2719, __pyx_L1_error)
}
- __pyx_t_4 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2708, __pyx_L1_error)
+ __pyx_t_4 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2719, __pyx_L1_error)
- /* "lxml/etree.pyx":2709
+ /* "lxml/etree.pyx":2720
* return
* seen.add(tag)
* if tag in ('*', '{*}*'): # <<<<<<<<<<<<<<
*/
__Pyx_INCREF(__pyx_v_tag);
__pyx_t_1 = __pyx_v_tag;
- __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2709, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2720, __pyx_L1_error)
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L6_bool_binop_done;
}
- __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__41, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2709, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s__41, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2720, __pyx_L1_error)
__pyx_t_3 = __pyx_t_2;
__pyx_L6_bool_binop_done:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2710
+ /* "lxml/etree.pyx":2721
* seen.add(tag)
* if tag in ('*', '{*}*'):
* self._node_types |= 1 << tree.XML_ELEMENT_NODE # <<<<<<<<<<<<<<
*/
__pyx_v_self->_node_types = (__pyx_v_self->_node_types | (1 << XML_ELEMENT_NODE));
- /* "lxml/etree.pyx":2709
+ /* "lxml/etree.pyx":2720
* return
* seen.add(tag)
* if tag in ('*', '{*}*'): # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/etree.pyx":2712
+ /* "lxml/etree.pyx":2723
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* else:
* href, name = _getNsTag(tag) # <<<<<<<<<<<<<<
* name = None
*/
/*else*/ {
- __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2712, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(__pyx_t_1 != Py_None)) {
PyObject* sequence = __pyx_t_1;
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 2712, __pyx_L1_error)
+ __PYX_ERR(0, 2723, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
#else
- __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2712, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2712, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2712, __pyx_L1_error)
+ __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 2723, __pyx_L1_error)
}
__pyx_v_href = __pyx_t_5;
__pyx_t_5 = 0;
__pyx_v_name = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":2713
+ /* "lxml/etree.pyx":2724
* else:
* href, name = _getNsTag(tag)
* if name == b'*': # <<<<<<<<<<<<<<
* name = None
* if href is None:
*/
- __pyx_t_2 = (__Pyx_PyBytes_Equals(__pyx_v_name, __pyx_kp_b__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2713, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyBytes_Equals(__pyx_v_name, __pyx_kp_b__40, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2724, __pyx_L1_error)
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2714
+ /* "lxml/etree.pyx":2725
* href, name = _getNsTag(tag)
* if name == b'*':
* name = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_name, Py_None);
- /* "lxml/etree.pyx":2713
+ /* "lxml/etree.pyx":2724
* else:
* href, name = _getNsTag(tag)
* if name == b'*': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2715
+ /* "lxml/etree.pyx":2726
* if name == b'*':
* name = None
* if href is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2716
+ /* "lxml/etree.pyx":2727
* name = None
* if href is None:
* href = b'' # no namespace # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_kp_b__11);
__Pyx_DECREF_SET(__pyx_v_href, __pyx_kp_b__11);
- /* "lxml/etree.pyx":2715
+ /* "lxml/etree.pyx":2726
* if name == b'*':
* name = None
* if href is None: # <<<<<<<<<<<<<<
goto __pyx_L9;
}
- /* "lxml/etree.pyx":2717
+ /* "lxml/etree.pyx":2728
* if href is None:
* href = b'' # no namespace
* elif href == b'*': # <<<<<<<<<<<<<<
* href = None # wildcard: any namespace, including none
* self._py_tags.append((href, name))
*/
- __pyx_t_3 = (__Pyx_PyBytes_Equals(__pyx_v_href, __pyx_kp_b__40, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2717, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyBytes_Equals(__pyx_v_href, __pyx_kp_b__40, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2728, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2718
+ /* "lxml/etree.pyx":2729
* href = b'' # no namespace
* elif href == b'*':
* href = None # wildcard: any namespace, including none # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_href, Py_None);
- /* "lxml/etree.pyx":2717
+ /* "lxml/etree.pyx":2728
* if href is None:
* href = b'' # no namespace
* elif href == b'*': # <<<<<<<<<<<<<<
}
__pyx_L9:;
- /* "lxml/etree.pyx":2719
+ /* "lxml/etree.pyx":2730
* elif href == b'*':
* href = None # wildcard: any namespace, including none
* self._py_tags.append((href, name)) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_py_tags == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 2719, __pyx_L1_error)
+ __PYX_ERR(0, 2730, __pyx_L1_error)
}
- __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2719, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_href);
__Pyx_GIVEREF(__pyx_v_href);
__Pyx_INCREF(__pyx_v_name);
__Pyx_GIVEREF(__pyx_v_name);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
- __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, __pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2719, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, __pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L5:;
- /* "lxml/etree.pyx":2705
+ /* "lxml/etree.pyx":2716
* elif tag is Element:
* self._node_types |= 1 << tree.XML_ELEMENT_NODE
* elif python._isString(tag): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2722
+ /* "lxml/etree.pyx":2733
* else:
* # support a sequence of tags
* for item in tag: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_tag; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
} else {
- __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2733, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2733, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_8)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2733, __pyx_L1_error)
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2733, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
} else {
if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 2733, __pyx_L1_error)
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2722, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2733, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 2722, __pyx_L1_error)
+ else __PYX_ERR(0, 2733, __pyx_L1_error)
}
break;
}
__Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/etree.pyx":2723
+ /* "lxml/etree.pyx":2734
* # support a sequence of tags
* for item in tag:
* self._storeTags(item, seen) # <<<<<<<<<<<<<<
*
* cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1:
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_item, __pyx_v_seen); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2723, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_item, __pyx_v_seen); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/etree.pyx":2722
+ /* "lxml/etree.pyx":2733
* else:
* # support a sequence of tags
* for item in tag: # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":2696
+ /* "lxml/etree.pyx":2707
* self._storeTags(tags, set())
*
* cdef _storeTags(self, tag, set seen): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2725
+/* "lxml/etree.pyx":2736
* self._storeTags(item, seen)
*
* cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1: # <<<<<<<<<<<<<<
}
}
- /* "lxml/etree.pyx":2729
+ /* "lxml/etree.pyx":2740
* Look up the tag names in the doc dict to enable string pointer comparisons.
* """
* cdef size_t dict_size = tree.xmlDictSize(doc._c_doc.dict) # <<<<<<<<<<<<<<
*/
__pyx_v_dict_size = xmlDictSize(__pyx_v_doc->_c_doc->dict);
- /* "lxml/etree.pyx":2730
+ /* "lxml/etree.pyx":2741
* """
* cdef size_t dict_size = tree.xmlDictSize(doc._c_doc.dict)
* if doc is self._cached_doc and dict_size == self._cached_size: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2732
+ /* "lxml/etree.pyx":2743
* if doc is self._cached_doc and dict_size == self._cached_size:
* # doc and dict didn't change => names already cached
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2730
+ /* "lxml/etree.pyx":2741
* """
* cdef size_t dict_size = tree.xmlDictSize(doc._c_doc.dict)
* if doc is self._cached_doc and dict_size == self._cached_size: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2733
+ /* "lxml/etree.pyx":2744
* # doc and dict didn't change => names already cached
* return 0
* self._tag_count = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_self->_tag_count = 0;
- /* "lxml/etree.pyx":2734
+ /* "lxml/etree.pyx":2745
* return 0
* self._tag_count = 0
* if not self._py_tags: # <<<<<<<<<<<<<<
__pyx_t_3 = ((!__pyx_t_1) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2735
+ /* "lxml/etree.pyx":2746
* self._tag_count = 0
* if not self._py_tags:
* self._cached_doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
__pyx_v_self->_cached_doc = __pyx_v_doc;
- /* "lxml/etree.pyx":2736
+ /* "lxml/etree.pyx":2747
* if not self._py_tags:
* self._cached_doc = doc
* self._cached_size = dict_size # <<<<<<<<<<<<<<
*/
__pyx_v_self->_cached_size = __pyx_v_dict_size;
- /* "lxml/etree.pyx":2737
+ /* "lxml/etree.pyx":2748
* self._cached_doc = doc
* self._cached_size = dict_size
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2734
+ /* "lxml/etree.pyx":2745
* return 0
* self._tag_count = 0
* if not self._py_tags: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2738
+ /* "lxml/etree.pyx":2749
* self._cached_size = dict_size
* return 0
* if not self._cached_tags: # <<<<<<<<<<<<<<
__pyx_t_3 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2739
+ /* "lxml/etree.pyx":2750
* return 0
* if not self._cached_tags:
* self._cached_tags = <qname*>python.lxml_malloc(len(self._py_tags), sizeof(qname)) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_4);
if (unlikely(__pyx_t_4 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 2739, __pyx_L1_error)
+ __PYX_ERR(0, 2750, __pyx_L1_error)
}
- __pyx_t_5 = PyList_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2739, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2750, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_self->_cached_tags = ((struct __pyx_t_4lxml_5etree_qname *)lxml_malloc(__pyx_t_5, (sizeof(struct __pyx_t_4lxml_5etree_qname))));
- /* "lxml/etree.pyx":2740
+ /* "lxml/etree.pyx":2751
* if not self._cached_tags:
* self._cached_tags = <qname*>python.lxml_malloc(len(self._py_tags), sizeof(qname))
* if not self._cached_tags: # <<<<<<<<<<<<<<
__pyx_t_3 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2741
+ /* "lxml/etree.pyx":2752
* self._cached_tags = <qname*>python.lxml_malloc(len(self._py_tags), sizeof(qname))
* if not self._cached_tags:
* self._cached_doc = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
__pyx_v_self->_cached_doc = ((struct LxmlDocument *)Py_None);
- /* "lxml/etree.pyx":2742
+ /* "lxml/etree.pyx":2753
* if not self._cached_tags:
* self._cached_doc = None
* raise MemoryError() # <<<<<<<<<<<<<<
* self._tag_count = <size_t>_mapTagsToQnameMatchArray(
* doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
*/
- PyErr_NoMemory(); __PYX_ERR(0, 2742, __pyx_L1_error)
+ PyErr_NoMemory(); __PYX_ERR(0, 2753, __pyx_L1_error)
- /* "lxml/etree.pyx":2740
+ /* "lxml/etree.pyx":2751
* if not self._cached_tags:
* self._cached_tags = <qname*>python.lxml_malloc(len(self._py_tags), sizeof(qname))
* if not self._cached_tags: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2738
+ /* "lxml/etree.pyx":2749
* self._cached_size = dict_size
* return 0
* if not self._cached_tags: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2744
+ /* "lxml/etree.pyx":2755
* raise MemoryError()
* self._tag_count = <size_t>_mapTagsToQnameMatchArray(
* doc._c_doc, self._py_tags, self._cached_tags, force_into_dict) # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_self->_py_tags;
__Pyx_INCREF(__pyx_t_4);
- /* "lxml/etree.pyx":2743
+ /* "lxml/etree.pyx":2754
* self._cached_doc = None
* raise MemoryError()
* self._tag_count = <size_t>_mapTagsToQnameMatchArray( # <<<<<<<<<<<<<<
* doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
* self._cached_doc = doc
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(__pyx_v_doc->_c_doc, ((PyObject*)__pyx_t_4), __pyx_v_self->_cached_tags, __pyx_v_force_into_dict); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 2743, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(__pyx_v_doc->_c_doc, ((PyObject*)__pyx_t_4), __pyx_v_self->_cached_tags, __pyx_v_force_into_dict); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1L))) __PYX_ERR(0, 2754, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_self->_tag_count = ((size_t)__pyx_t_5);
- /* "lxml/etree.pyx":2745
+ /* "lxml/etree.pyx":2756
* self._tag_count = <size_t>_mapTagsToQnameMatchArray(
* doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
* self._cached_doc = doc # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
__pyx_v_self->_cached_doc = __pyx_v_doc;
- /* "lxml/etree.pyx":2746
+ /* "lxml/etree.pyx":2757
* doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
* self._cached_doc = doc
* self._cached_size = dict_size # <<<<<<<<<<<<<<
*/
__pyx_v_self->_cached_size = __pyx_v_dict_size;
- /* "lxml/etree.pyx":2747
+ /* "lxml/etree.pyx":2758
* self._cached_doc = doc
* self._cached_size = dict_size
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2725
+ /* "lxml/etree.pyx":2736
* self._storeTags(item, seen)
*
* cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2749
+/* "lxml/etree.pyx":2760
* return 0
*
* cdef inline bint matches(self, xmlNode* c_node): # <<<<<<<<<<<<<<
struct __pyx_t_4lxml_5etree_qname *__pyx_t_4;
__Pyx_RefNannySetupContext("matches", 0);
- /* "lxml/etree.pyx":2751
+ /* "lxml/etree.pyx":2762
* cdef inline bint matches(self, xmlNode* c_node):
* cdef qname* c_qname
* if self._node_types & (1 << c_node.type): # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_self->_node_types & (1 << __pyx_v_c_node->type)) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2752
+ /* "lxml/etree.pyx":2763
* cdef qname* c_qname
* if self._node_types & (1 << c_node.type):
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2751
+ /* "lxml/etree.pyx":2762
* cdef inline bint matches(self, xmlNode* c_node):
* cdef qname* c_qname
* if self._node_types & (1 << c_node.type): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2753
+ /* "lxml/etree.pyx":2764
* if self._node_types & (1 << c_node.type):
* return True
* elif c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2754
+ /* "lxml/etree.pyx":2765
* return True
* elif c_node.type == tree.XML_ELEMENT_NODE:
* for c_qname in self._cached_tags[:self._tag_count]: # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_4;
__pyx_v_c_qname = __pyx_t_2;
- /* "lxml/etree.pyx":2755
+ /* "lxml/etree.pyx":2766
* elif c_node.type == tree.XML_ELEMENT_NODE:
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(c_node, c_qname): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__tagMatchesExactly(__pyx_v_c_node, __pyx_v_c_qname) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2756
+ /* "lxml/etree.pyx":2767
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(c_node, c_qname):
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2755
+ /* "lxml/etree.pyx":2766
* elif c_node.type == tree.XML_ELEMENT_NODE:
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(c_node, c_qname): # <<<<<<<<<<<<<<
}
}
- /* "lxml/etree.pyx":2753
+ /* "lxml/etree.pyx":2764
* if self._node_types & (1 << c_node.type):
* return True
* elif c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2757
+ /* "lxml/etree.pyx":2768
* if _tagMatchesExactly(c_node, c_qname):
* return True
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2749
+ /* "lxml/etree.pyx":2760
* return 0
*
* cdef inline bint matches(self, xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2759
+/* "lxml/etree.pyx":2770
* return False
*
* cdef inline bint matchesNsTag(self, const_xmlChar* c_href, # <<<<<<<<<<<<<<
struct __pyx_t_4lxml_5etree_qname *__pyx_t_4;
__Pyx_RefNannySetupContext("matchesNsTag", 0);
- /* "lxml/etree.pyx":2762
+ /* "lxml/etree.pyx":2773
* const_xmlChar* c_name):
* cdef qname* c_qname
* if self._node_types & (1 << tree.XML_ELEMENT_NODE): # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_self->_node_types & (1 << XML_ELEMENT_NODE)) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2763
+ /* "lxml/etree.pyx":2774
* cdef qname* c_qname
* if self._node_types & (1 << tree.XML_ELEMENT_NODE):
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2762
+ /* "lxml/etree.pyx":2773
* const_xmlChar* c_name):
* cdef qname* c_qname
* if self._node_types & (1 << tree.XML_ELEMENT_NODE): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2764
+ /* "lxml/etree.pyx":2775
* if self._node_types & (1 << tree.XML_ELEMENT_NODE):
* return True
* for c_qname in self._cached_tags[:self._tag_count]: # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_4;
__pyx_v_c_qname = __pyx_t_2;
- /* "lxml/etree.pyx":2765
+ /* "lxml/etree.pyx":2776
* return True
* for c_qname in self._cached_tags[:self._tag_count]:
* if _nsTagMatchesExactly(c_href, c_name, c_qname): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree__nsTagMatchesExactly(__pyx_v_c_href, __pyx_v_c_name, __pyx_v_c_qname) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2766
+ /* "lxml/etree.pyx":2777
* for c_qname in self._cached_tags[:self._tag_count]:
* if _nsTagMatchesExactly(c_href, c_name, c_qname):
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2765
+ /* "lxml/etree.pyx":2776
* return True
* for c_qname in self._cached_tags[:self._tag_count]:
* if _nsTagMatchesExactly(c_href, c_name, c_qname): # <<<<<<<<<<<<<<
}
}
- /* "lxml/etree.pyx":2767
+ /* "lxml/etree.pyx":2778
* if _nsTagMatchesExactly(c_href, c_name, c_qname):
* return True
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2759
+ /* "lxml/etree.pyx":2770
* return False
*
* cdef inline bint matchesNsTag(self, const_xmlChar* c_href, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2769
+/* "lxml/etree.pyx":2780
* return False
*
* cdef inline bint matchesAttribute(self, xmlAttr* c_attr): # <<<<<<<<<<<<<<
int __pyx_t_4;
__Pyx_RefNannySetupContext("matchesAttribute", 0);
- /* "lxml/etree.pyx":2774
+ /* "lxml/etree.pyx":2785
* """
* cdef qname* c_qname
* for c_qname in self._cached_tags[:self._tag_count]: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_3;
__pyx_v_c_qname = __pyx_t_1;
- /* "lxml/etree.pyx":2775
+ /* "lxml/etree.pyx":2786
* cdef qname* c_qname
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(<xmlNode*>c_attr, c_qname): # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_f_4lxml_5etree__tagMatchesExactly(((xmlNode *)__pyx_v_c_attr), __pyx_v_c_qname) != 0);
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2776
+ /* "lxml/etree.pyx":2787
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(<xmlNode*>c_attr, c_qname):
* return True # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/etree.pyx":2775
+ /* "lxml/etree.pyx":2786
* cdef qname* c_qname
* for c_qname in self._cached_tags[:self._tag_count]:
* if _tagMatchesExactly(<xmlNode*>c_attr, c_qname): # <<<<<<<<<<<<<<
}
}
- /* "lxml/etree.pyx":2777
+ /* "lxml/etree.pyx":2788
* if _tagMatchesExactly(<xmlNode*>c_attr, c_qname):
* return True
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2769
+ /* "lxml/etree.pyx":2780
* return False
*
* cdef inline bint matchesAttribute(self, xmlAttr* c_attr): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2785
+/* "lxml/etree.pyx":2796
*
* @cython.final
* cdef _initTagMatcher(self, tags): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("_initTagMatcher", 0);
- /* "lxml/etree.pyx":2786
+ /* "lxml/etree.pyx":2797
* @cython.final
* cdef _initTagMatcher(self, tags):
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tags) # <<<<<<<<<<<<<<
*
* def __iter__(self):
*/
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2786, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2797, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_tags);
__Pyx_GIVEREF(__pyx_v_tags);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tags);
- __pyx_t_2 = ((PyObject *)__pyx_tp_new_4lxml_5etree__MultiTagMatcher(((PyTypeObject *)__pyx_ptype_4lxml_5etree__MultiTagMatcher), __pyx_t_1, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2786, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_tp_new_4lxml_5etree__MultiTagMatcher(((PyTypeObject *)__pyx_ptype_4lxml_5etree__MultiTagMatcher), __pyx_t_1, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2797, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_2));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GIVEREF(((PyObject *)__pyx_t_2));
__pyx_v_self->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2785
+ /* "lxml/etree.pyx":2796
*
* @cython.final
* cdef _initTagMatcher(self, tags): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2788
+/* "lxml/etree.pyx":2799
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tags)
*
* def __iter__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2789
+ /* "lxml/etree.pyx":2800
*
* def __iter__(self):
* return self # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self);
goto __pyx_L0;
- /* "lxml/etree.pyx":2788
+ /* "lxml/etree.pyx":2799
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tags)
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2792
+/* "lxml/etree.pyx":2803
*
* @cython.final
* cdef int _storeNext(self, _Element node) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("_storeNext", 0);
- /* "lxml/etree.pyx":2793
+ /* "lxml/etree.pyx":2804
* @cython.final
* cdef int _storeNext(self, _Element node) except -1:
* self._matcher.cacheTags(node._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2793, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2804, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2794
+ /* "lxml/etree.pyx":2805
* cdef int _storeNext(self, _Element node) except -1:
* self._matcher.cacheTags(node._doc)
* c_node = self._next_element(node._c_node) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_node->_c_node);
- /* "lxml/etree.pyx":2795
+ /* "lxml/etree.pyx":2806
* self._matcher.cacheTags(node._doc)
* c_node = self._next_element(node._c_node)
* while c_node is not NULL and not self._matcher.matches(c_node): # <<<<<<<<<<<<<<
__pyx_L5_bool_binop_done:;
if (!__pyx_t_3) break;
- /* "lxml/etree.pyx":2796
+ /* "lxml/etree.pyx":2807
* c_node = self._next_element(node._c_node)
* while c_node is not NULL and not self._matcher.matches(c_node):
* c_node = self._next_element(c_node) # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_c_node);
}
- /* "lxml/etree.pyx":2798
+ /* "lxml/etree.pyx":2809
* c_node = self._next_element(c_node)
* # store Python ref to next node to make sure it's kept alive
* self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None # <<<<<<<<<<<<<<
if (((__pyx_v_c_node != NULL) != 0)) {
__pyx_t_5 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_5);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2798, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2809, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = __pyx_t_6;
__pyx_v_self->_node = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2799
+ /* "lxml/etree.pyx":2810
* # store Python ref to next node to make sure it's kept alive
* self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2792
+ /* "lxml/etree.pyx":2803
*
* @cython.final
* cdef int _storeNext(self, _Element node) except -1: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2801
+/* "lxml/etree.pyx":2812
* return 0
*
* def __next__(self): # <<<<<<<<<<<<<<
int __pyx_t_4;
__Pyx_RefNannySetupContext("__next__", 0);
- /* "lxml/etree.pyx":2802
+ /* "lxml/etree.pyx":2813
*
* def __next__(self):
* cdef _Element current_node = self._node # <<<<<<<<<<<<<<
__pyx_v_current_node = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2803
+ /* "lxml/etree.pyx":2814
* def __next__(self):
* cdef _Element current_node = self._node
* if current_node is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2804
+ /* "lxml/etree.pyx":2815
* cdef _Element current_node = self._node
* if current_node is None:
* raise StopIteration # <<<<<<<<<<<<<<
* return current_node
*/
__Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
- __PYX_ERR(0, 2804, __pyx_L1_error)
+ __PYX_ERR(0, 2815, __pyx_L1_error)
- /* "lxml/etree.pyx":2803
+ /* "lxml/etree.pyx":2814
* def __next__(self):
* cdef _Element current_node = self._node
* if current_node is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2805
+ /* "lxml/etree.pyx":2816
* if current_node is None:
* raise StopIteration
* self._storeNext(current_node) # <<<<<<<<<<<<<<
* return current_node
*
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2805, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2816, __pyx_L1_error)
- /* "lxml/etree.pyx":2806
+ /* "lxml/etree.pyx":2817
* raise StopIteration
* self._storeNext(current_node)
* return current_node # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_current_node);
goto __pyx_L0;
- /* "lxml/etree.pyx":2801
+ /* "lxml/etree.pyx":2812
* return 0
*
* def __next__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2812
+/* "lxml/etree.pyx":2823
* Iterates over the children of an element.
* """
* def __cinit__(self, _Element node not None, tag=None, *, bint reversed=False): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2812, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2823, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__pyx_v_node = ((struct LxmlElement *)values[0]);
__pyx_v_tag = values[1];
if (values[2]) {
- __pyx_v_reversed = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_reversed == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2812, __pyx_L3_error)
+ __pyx_v_reversed = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_reversed == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2823, __pyx_L3_error)
} else {
__pyx_v_reversed = ((int)0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2812, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2823, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ElementChildIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2812, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2823, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementChildIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_reversed);
/* function exit code */
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2814
+ /* "lxml/etree.pyx":2825
* def __cinit__(self, _Element node not None, tag=None, *, bint reversed=False):
* cdef xmlNode* c_node
* _assertValidNode(node) # <<<<<<<<<<<<<<
* self._initTagMatcher(tag)
* if reversed:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2814, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2825, __pyx_L1_error)
- /* "lxml/etree.pyx":2815
+ /* "lxml/etree.pyx":2826
* cdef xmlNode* c_node
* _assertValidNode(node)
* self._initTagMatcher(tag) # <<<<<<<<<<<<<<
* if reversed:
* c_node = _findChildBackwards(node._c_node, 0)
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2815, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2816
+ /* "lxml/etree.pyx":2827
* _assertValidNode(node)
* self._initTagMatcher(tag)
* if reversed: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_reversed != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2817
+ /* "lxml/etree.pyx":2828
* self._initTagMatcher(tag)
* if reversed:
* c_node = _findChildBackwards(node._c_node, 0) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_f_4lxml_5etree__findChildBackwards(__pyx_v_node->_c_node, 0);
- /* "lxml/etree.pyx":2818
+ /* "lxml/etree.pyx":2829
* if reversed:
* c_node = _findChildBackwards(node._c_node, 0)
* self._next_element = _previousElement # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base._next_element = __pyx_f_4lxml_5etree__previousElement;
- /* "lxml/etree.pyx":2816
+ /* "lxml/etree.pyx":2827
* _assertValidNode(node)
* self._initTagMatcher(tag)
* if reversed: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2820
+ /* "lxml/etree.pyx":2831
* self._next_element = _previousElement
* else:
* c_node = _findChildForwards(node._c_node, 0) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_c_node = __pyx_f_4lxml_5etree__findChildForwards(__pyx_v_node->_c_node, 0);
- /* "lxml/etree.pyx":2821
+ /* "lxml/etree.pyx":2832
* else:
* c_node = _findChildForwards(node._c_node, 0)
* self._next_element = _nextElement # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":2822
+ /* "lxml/etree.pyx":2833
* c_node = _findChildForwards(node._c_node, 0)
* self._next_element = _nextElement
* self._matcher.cacheTags(node._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_2 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->__pyx_base._matcher, ((struct LxmlDocument *)__pyx_t_2), NULL); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2822, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->__pyx_base._matcher, ((struct LxmlDocument *)__pyx_t_2), NULL); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2833, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2823
+ /* "lxml/etree.pyx":2834
* self._next_element = _nextElement
* self._matcher.cacheTags(node._doc)
* while c_node is not NULL and not self._matcher.matches(c_node): # <<<<<<<<<<<<<<
__pyx_L6_bool_binop_done:;
if (!__pyx_t_3) break;
- /* "lxml/etree.pyx":2824
+ /* "lxml/etree.pyx":2835
* self._matcher.cacheTags(node._doc)
* while c_node is not NULL and not self._matcher.matches(c_node):
* c_node = self._next_element(c_node) # <<<<<<<<<<<<<<
__pyx_v_c_node = __pyx_v_self->__pyx_base._next_element(__pyx_v_c_node);
}
- /* "lxml/etree.pyx":2826
+ /* "lxml/etree.pyx":2837
* c_node = self._next_element(c_node)
* # store Python ref to next node to make sure it's kept alive
* self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None # <<<<<<<<<<<<<<
if (((__pyx_v_c_node != NULL) != 0)) {
__pyx_t_5 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_5);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2826, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __pyx_t_6;
__pyx_v_self->__pyx_base._node = ((struct LxmlElement *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":2812
+ /* "lxml/etree.pyx":2823
* Iterates over the children of an element.
* """
* def __cinit__(self, _Element node not None, tag=None, *, bint reversed=False): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2834
+/* "lxml/etree.pyx":2845
* You can pass the boolean keyword ``preceding`` to specify the direction.
* """
* def __cinit__(self, _Element node not None, tag=None, *, bint preceding=False): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2834, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2845, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__pyx_v_node = ((struct LxmlElement *)values[0]);
__pyx_v_tag = values[1];
if (values[2]) {
- __pyx_v_preceding = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_preceding == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2834, __pyx_L3_error)
+ __pyx_v_preceding = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_preceding == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2845, __pyx_L3_error)
} else {
__pyx_v_preceding = ((int)0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2834, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2845, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.SiblingsIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2834, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2845, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_16SiblingsIterator___cinit__(((struct __pyx_obj_4lxml_5etree_SiblingsIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_preceding);
/* function exit code */
int __pyx_t_3;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2835
+ /* "lxml/etree.pyx":2846
* """
* def __cinit__(self, _Element node not None, tag=None, *, bint preceding=False):
* _assertValidNode(node) # <<<<<<<<<<<<<<
* self._initTagMatcher(tag)
* if preceding:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2835, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2846, __pyx_L1_error)
- /* "lxml/etree.pyx":2836
+ /* "lxml/etree.pyx":2847
* def __cinit__(self, _Element node not None, tag=None, *, bint preceding=False):
* _assertValidNode(node)
* self._initTagMatcher(tag) # <<<<<<<<<<<<<<
* if preceding:
* self._next_element = _previousElement
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2836, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2837
+ /* "lxml/etree.pyx":2848
* _assertValidNode(node)
* self._initTagMatcher(tag)
* if preceding: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_preceding != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2838
+ /* "lxml/etree.pyx":2849
* self._initTagMatcher(tag)
* if preceding:
* self._next_element = _previousElement # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base._next_element = __pyx_f_4lxml_5etree__previousElement;
- /* "lxml/etree.pyx":2837
+ /* "lxml/etree.pyx":2848
* _assertValidNode(node)
* self._initTagMatcher(tag)
* if preceding: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2840
+ /* "lxml/etree.pyx":2851
* self._next_element = _previousElement
* else:
* self._next_element = _nextElement # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":2841
+ /* "lxml/etree.pyx":2852
* else:
* self._next_element = _nextElement
* self._storeNext(node) # <<<<<<<<<<<<<<
*
* cdef class AncestorsIterator(_ElementMatchIterator):
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2841, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2852, __pyx_L1_error)
- /* "lxml/etree.pyx":2834
+ /* "lxml/etree.pyx":2845
* You can pass the boolean keyword ``preceding`` to specify the direction.
* """
* def __cinit__(self, _Element node not None, tag=None, *, bint preceding=False): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2847
+/* "lxml/etree.pyx":2858
* Iterates over the ancestors of an element (from parent to parent).
* """
* def __cinit__(self, _Element node not None, tag=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2847, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2858, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2847, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2858, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.AncestorsIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2847, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2858, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_17AncestorsIterator___cinit__(((struct __pyx_obj_4lxml_5etree_AncestorsIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag);
/* function exit code */
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2848
+ /* "lxml/etree.pyx":2859
* """
* def __cinit__(self, _Element node not None, tag=None):
* _assertValidNode(node) # <<<<<<<<<<<<<<
* self._initTagMatcher(tag)
* self._next_element = _parentElement
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2848, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2859, __pyx_L1_error)
- /* "lxml/etree.pyx":2849
+ /* "lxml/etree.pyx":2860
* def __cinit__(self, _Element node not None, tag=None):
* _assertValidNode(node)
* self._initTagMatcher(tag) # <<<<<<<<<<<<<<
* self._next_element = _parentElement
* self._storeNext(node)
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2849, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2860, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":2850
+ /* "lxml/etree.pyx":2861
* _assertValidNode(node)
* self._initTagMatcher(tag)
* self._next_element = _parentElement # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base._next_element = __pyx_f_4lxml_5etree__parentElement;
- /* "lxml/etree.pyx":2851
+ /* "lxml/etree.pyx":2862
* self._initTagMatcher(tag)
* self._next_element = _parentElement
* self._storeNext(node) # <<<<<<<<<<<<<<
*
* cdef class ElementDepthFirstIterator:
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2851, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2862, __pyx_L1_error)
- /* "lxml/etree.pyx":2847
+ /* "lxml/etree.pyx":2858
* Iterates over the ancestors of an element (from parent to parent).
* """
* def __cinit__(self, _Element node not None, tag=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2878
+/* "lxml/etree.pyx":2889
* cdef _Element _top_node
* cdef _MultiTagMatcher _matcher
* def __cinit__(self, _Element node not None, tag=None, *, bint inclusive=True): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2878, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2889, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__pyx_v_node = ((struct LxmlElement *)values[0]);
__pyx_v_tag = values[1];
if (values[2]) {
- __pyx_v_inclusive = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_inclusive == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2878, __pyx_L3_error)
+ __pyx_v_inclusive = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_inclusive == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2889, __pyx_L3_error)
} else {
__pyx_v_inclusive = ((int)1);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2878, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2889, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ElementDepthFirstIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2878, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) __PYX_ERR(0, 2889, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_inclusive);
/* function exit code */
int __pyx_t_5;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2879
+ /* "lxml/etree.pyx":2890
* cdef _MultiTagMatcher _matcher
* def __cinit__(self, _Element node not None, tag=None, *, bint inclusive=True):
* _assertValidNode(node) # <<<<<<<<<<<<<<
* self._top_node = node
* self._next_node = node
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2879, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2890, __pyx_L1_error)
- /* "lxml/etree.pyx":2880
+ /* "lxml/etree.pyx":2891
* def __cinit__(self, _Element node not None, tag=None, *, bint inclusive=True):
* _assertValidNode(node)
* self._top_node = node # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_top_node));
__pyx_v_self->_top_node = __pyx_v_node;
- /* "lxml/etree.pyx":2881
+ /* "lxml/etree.pyx":2892
* _assertValidNode(node)
* self._top_node = node
* self._next_node = node # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_next_node));
__pyx_v_self->_next_node = __pyx_v_node;
- /* "lxml/etree.pyx":2882
+ /* "lxml/etree.pyx":2893
* self._top_node = node
* self._next_node = node
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tag) # <<<<<<<<<<<<<<
* self._matcher.cacheTags(node._doc)
* if not inclusive or not self._matcher.matches(node._c_node):
*/
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2882, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
- __pyx_t_3 = ((PyObject *)__pyx_tp_new_4lxml_5etree__MultiTagMatcher(((PyTypeObject *)__pyx_ptype_4lxml_5etree__MultiTagMatcher), __pyx_t_2, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2882, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_tp_new_4lxml_5etree__MultiTagMatcher(((PyTypeObject *)__pyx_ptype_4lxml_5etree__MultiTagMatcher), __pyx_t_2, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2893, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_3));
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(((PyObject *)__pyx_t_3));
__pyx_v_self->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2883
+ /* "lxml/etree.pyx":2894
* self._next_node = node
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tag)
* self._matcher.cacheTags(node._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_3 = ((PyObject *)__pyx_v_node->_doc);
__Pyx_INCREF(__pyx_t_3);
- __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_3), NULL); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2883, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_3), NULL); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2894, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":2884
+ /* "lxml/etree.pyx":2895
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tag)
* self._matcher.cacheTags(node._doc)
* if not inclusive or not self._matcher.matches(node._c_node): # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/etree.pyx":2886
+ /* "lxml/etree.pyx":2897
* if not inclusive or not self._matcher.matches(node._c_node):
* # find start node (this cannot raise StopIteration, self._next_node != None)
* next(self) # <<<<<<<<<<<<<<
*
* def __iter__(self):
*/
- __pyx_t_3 = __Pyx_PyIter_Next(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2886, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyIter_Next(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2897, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":2884
+ /* "lxml/etree.pyx":2895
* self._matcher = _MultiTagMatcher.__new__(_MultiTagMatcher, tag)
* self._matcher.cacheTags(node._doc)
* if not inclusive or not self._matcher.matches(node._c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2878
+ /* "lxml/etree.pyx":2889
* cdef _Element _top_node
* cdef _MultiTagMatcher _matcher
* def __cinit__(self, _Element node not None, tag=None, *, bint inclusive=True): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2888
+/* "lxml/etree.pyx":2899
* next(self)
*
* def __iter__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2889
+ /* "lxml/etree.pyx":2900
*
* def __iter__(self):
* return self # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self);
goto __pyx_L0;
- /* "lxml/etree.pyx":2888
+ /* "lxml/etree.pyx":2899
* next(self)
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2891
+/* "lxml/etree.pyx":2902
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("__next__", 0);
- /* "lxml/etree.pyx":2893
+ /* "lxml/etree.pyx":2904
* def __next__(self):
* cdef xmlNode* c_node
* cdef _Element current_node = self._next_node # <<<<<<<<<<<<<<
__pyx_v_current_node = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":2894
+ /* "lxml/etree.pyx":2905
* cdef xmlNode* c_node
* cdef _Element current_node = self._next_node
* if current_node is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":2895
+ /* "lxml/etree.pyx":2906
* cdef _Element current_node = self._next_node
* if current_node is None:
* raise StopIteration # <<<<<<<<<<<<<<
* self._matcher.cacheTags(current_node._doc)
*/
__Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
- __PYX_ERR(0, 2895, __pyx_L1_error)
+ __PYX_ERR(0, 2906, __pyx_L1_error)
- /* "lxml/etree.pyx":2894
+ /* "lxml/etree.pyx":2905
* cdef xmlNode* c_node
* cdef _Element current_node = self._next_node
* if current_node is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2896
+ /* "lxml/etree.pyx":2907
* if current_node is None:
* raise StopIteration
* c_node = current_node._c_node # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_current_node->_c_node;
__pyx_v_c_node = __pyx_t_4;
- /* "lxml/etree.pyx":2897
+ /* "lxml/etree.pyx":2908
* raise StopIteration
* c_node = current_node._c_node
* self._matcher.cacheTags(current_node._doc) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2897, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2908, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":2898
+ /* "lxml/etree.pyx":2909
* c_node = current_node._c_node
* self._matcher.cacheTags(current_node._doc)
* if not self._matcher._tag_count: # <<<<<<<<<<<<<<
__pyx_t_3 = ((!(__pyx_v_self->_matcher->_tag_count != 0)) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2901
+ /* "lxml/etree.pyx":2912
* # no tag name was found in the dict => not in document either
* # try to match by node type
* c_node = self._nextNodeAnyTag(c_node) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag(__pyx_v_self, __pyx_v_c_node);
- /* "lxml/etree.pyx":2898
+ /* "lxml/etree.pyx":2909
* c_node = current_node._c_node
* self._matcher.cacheTags(current_node._doc)
* if not self._matcher._tag_count: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/etree.pyx":2903
+ /* "lxml/etree.pyx":2914
* c_node = self._nextNodeAnyTag(c_node)
* else:
* c_node = self._nextNodeMatchTag(c_node) # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "lxml/etree.pyx":2904
+ /* "lxml/etree.pyx":2915
* else:
* c_node = self._nextNodeMatchTag(c_node)
* if c_node is NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
if (__pyx_t_3) {
- /* "lxml/etree.pyx":2905
+ /* "lxml/etree.pyx":2916
* c_node = self._nextNodeMatchTag(c_node)
* if c_node is NULL:
* self._next_node = None # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_next_node));
__pyx_v_self->_next_node = ((struct LxmlElement *)Py_None);
- /* "lxml/etree.pyx":2904
+ /* "lxml/etree.pyx":2915
* else:
* c_node = self._nextNodeMatchTag(c_node)
* if c_node is NULL: # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/etree.pyx":2907
+ /* "lxml/etree.pyx":2918
* self._next_node = None
* else:
* self._next_node = _elementFactory(current_node._doc, c_node) # <<<<<<<<<<<<<<
/*else*/ {
__pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2907, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2918, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_GIVEREF(__pyx_t_6);
}
__pyx_L5:;
- /* "lxml/etree.pyx":2908
+ /* "lxml/etree.pyx":2919
* else:
* self._next_node = _elementFactory(current_node._doc, c_node)
* return current_node # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_current_node);
goto __pyx_L0;
- /* "lxml/etree.pyx":2891
+ /* "lxml/etree.pyx":2902
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2911
+/* "lxml/etree.pyx":2922
*
* @cython.final
* cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("_nextNodeAnyTag", 0);
- /* "lxml/etree.pyx":2912
+ /* "lxml/etree.pyx":2923
* @cython.final
* cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):
* cdef int node_types = self._matcher._node_types # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_v_self->_matcher->_node_types;
__pyx_v_node_types = __pyx_t_1;
- /* "lxml/etree.pyx":2913
+ /* "lxml/etree.pyx":2924
* cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):
* cdef int node_types = self._matcher._node_types
* if not node_types: # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_v_node_types != 0)) != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2914
+ /* "lxml/etree.pyx":2925
* cdef int node_types = self._matcher._node_types
* if not node_types:
* return NULL # <<<<<<<<<<<<<<
__pyx_r = NULL;
goto __pyx_L0;
- /* "lxml/etree.pyx":2913
+ /* "lxml/etree.pyx":2924
* cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):
* cdef int node_types = self._matcher._node_types
* if not node_types: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2915
+ /* "lxml/etree.pyx":2926
* if not node_types:
* return NULL
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_self->_top_node->_c_node, __pyx_v_c_node, 0);
- /* "lxml/etree.pyx":2916
+ /* "lxml/etree.pyx":2927
* return NULL
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if node_types & (1 << c_node.type): # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_node_types & (1 << __pyx_v_c_node->type)) != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2917
+ /* "lxml/etree.pyx":2928
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if node_types & (1 << c_node.type):
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2916
+ /* "lxml/etree.pyx":2927
* return NULL
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if node_types & (1 << c_node.type): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2918
+ /* "lxml/etree.pyx":2929
* if node_types & (1 << c_node.type):
* return c_node
* tree.END_FOR_EACH_ELEMENT_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
- /* "lxml/etree.pyx":2919
+ /* "lxml/etree.pyx":2930
* return c_node
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
* return NULL # <<<<<<<<<<<<<<
__pyx_r = NULL;
goto __pyx_L0;
- /* "lxml/etree.pyx":2911
+ /* "lxml/etree.pyx":2922
*
* @cython.final
* cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2922
+/* "lxml/etree.pyx":2933
*
* @cython.final
* cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node): # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("_nextNodeMatchTag", 0);
- /* "lxml/etree.pyx":2923
+ /* "lxml/etree.pyx":2934
* @cython.final
* cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_self->_top_node->_c_node, __pyx_v_c_node, 0);
- /* "lxml/etree.pyx":2924
+ /* "lxml/etree.pyx":2935
* cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if self._matcher.matches(c_node): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2925
+ /* "lxml/etree.pyx":2936
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if self._matcher.matches(c_node):
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2924
+ /* "lxml/etree.pyx":2935
* cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
* if self._matcher.matches(c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":2926
+ /* "lxml/etree.pyx":2937
* if self._matcher.matches(c_node):
* return c_node
* tree.END_FOR_EACH_ELEMENT_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
- /* "lxml/etree.pyx":2927
+ /* "lxml/etree.pyx":2938
* return c_node
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
* return NULL # <<<<<<<<<<<<<<
__pyx_r = NULL;
goto __pyx_L0;
- /* "lxml/etree.pyx":2922
+ /* "lxml/etree.pyx":2933
*
* @cython.final
* cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2941
+/* "lxml/etree.pyx":2952
* cdef object _nextEvent
* cdef _Element _start_element
* def __cinit__(self, _Element element not None, tag=None, *, bint with_tail=True): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2941, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2952, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
__pyx_v_element = ((struct LxmlElement *)values[0]);
__pyx_v_tag = values[1];
if (values[2]) {
- __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2941, __pyx_L3_error)
+ __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2952, __pyx_L3_error)
} else {
__pyx_v_with_tail = ((int)1);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2941, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2952, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ElementTextIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return -1;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2941, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) __PYX_ERR(0, 2952, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementTextIterator *)__pyx_v_self), __pyx_v_element, __pyx_v_tag, __pyx_v_with_tail);
/* function exit code */
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":2942
+ /* "lxml/etree.pyx":2953
* cdef _Element _start_element
* def __cinit__(self, _Element element not None, tag=None, *, bint with_tail=True):
* _assertValidNode(element) # <<<<<<<<<<<<<<
* if with_tail:
* events = (u"start", u"end")
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2942, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 2953, __pyx_L1_error)
- /* "lxml/etree.pyx":2943
+ /* "lxml/etree.pyx":2954
* def __cinit__(self, _Element element not None, tag=None, *, bint with_tail=True):
* _assertValidNode(element)
* if with_tail: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_with_tail != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2944
+ /* "lxml/etree.pyx":2955
* _assertValidNode(element)
* if with_tail:
* events = (u"start", u"end") # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_tuple__42);
__pyx_v_events = __pyx_tuple__42;
- /* "lxml/etree.pyx":2943
+ /* "lxml/etree.pyx":2954
* def __cinit__(self, _Element element not None, tag=None, *, bint with_tail=True):
* _assertValidNode(element)
* if with_tail: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":2946
+ /* "lxml/etree.pyx":2957
* events = (u"start", u"end")
* else:
* events = (u"start",) # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":2947
+ /* "lxml/etree.pyx":2958
* else:
* events = (u"start",)
* self._start_element = element # <<<<<<<<<<<<<<
__Pyx_DECREF(((PyObject *)__pyx_v_self->_start_element));
__pyx_v_self->_start_element = __pyx_v_element;
- /* "lxml/etree.pyx":2948
+ /* "lxml/etree.pyx":2959
* events = (u"start",)
* self._start_element = element
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__ # <<<<<<<<<<<<<<
*
* def __iter__(self):
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2948, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(((PyObject *)__pyx_v_element));
__Pyx_GIVEREF(((PyObject *)__pyx_v_element));
PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_element));
- __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2948, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_events, __pyx_v_events) < 0) __PYX_ERR(0, 2948, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_tag, __pyx_v_tag) < 0) __PYX_ERR(0, 2948, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_iterwalk), __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2948, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_events, __pyx_v_events) < 0) __PYX_ERR(0, 2959, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_tag, __pyx_v_tag) < 0) __PYX_ERR(0, 2959, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_iterwalk), __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_next); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2948, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_next); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_v_self->_nextEvent = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":2941
+ /* "lxml/etree.pyx":2952
* cdef object _nextEvent
* cdef _Element _start_element
* def __cinit__(self, _Element element not None, tag=None, *, bint with_tail=True): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2950
+/* "lxml/etree.pyx":2961
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
*
* def __iter__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__iter__", 0);
- /* "lxml/etree.pyx":2951
+ /* "lxml/etree.pyx":2962
*
* def __iter__(self):
* return self # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_self);
goto __pyx_L0;
- /* "lxml/etree.pyx":2950
+ /* "lxml/etree.pyx":2961
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
*
* def __iter__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2953
+/* "lxml/etree.pyx":2964
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_7)(PyObject *);
__Pyx_RefNannySetupContext("__next__", 0);
- /* "lxml/etree.pyx":2955
+ /* "lxml/etree.pyx":2966
* def __next__(self):
* cdef _Element element
* result = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_result = Py_None;
- /* "lxml/etree.pyx":2956
+ /* "lxml/etree.pyx":2967
* cdef _Element element
* result = None
* while result is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (!__pyx_t_2) break;
- /* "lxml/etree.pyx":2957
+ /* "lxml/etree.pyx":2968
* result = None
* while result is None:
* event, element = self._nextEvent() # raises StopIteration # <<<<<<<<<<<<<<
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2957, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 2957, __pyx_L1_error)
+ __PYX_ERR(0, 2968, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2957, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2957, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2957, __pyx_L1_error)
+ __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
__Pyx_GOTREF(__pyx_t_5);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 2957, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 2968, __pyx_L1_error)
__pyx_t_7 = NULL;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L6_unpacking_done;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 2957, __pyx_L1_error)
+ __PYX_ERR(0, 2968, __pyx_L1_error)
__pyx_L6_unpacking_done:;
}
- if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2957, __pyx_L1_error)
+ if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) __PYX_ERR(0, 2968, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_4);
__pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_5));
__pyx_t_5 = 0;
- /* "lxml/etree.pyx":2958
+ /* "lxml/etree.pyx":2969
* while result is None:
* event, element = self._nextEvent() # raises StopIteration
* if event == u"start": # <<<<<<<<<<<<<<
* result = element.text
* elif element is not self._start_element:
*/
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_event, __pyx_n_u_start, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_event, __pyx_n_u_start, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2969, __pyx_L1_error)
if (__pyx_t_2) {
- /* "lxml/etree.pyx":2959
+ /* "lxml/etree.pyx":2970
* event, element = self._nextEvent() # raises StopIteration
* if event == u"start":
* result = element.text # <<<<<<<<<<<<<<
* elif element is not self._start_element:
* result = element.tail
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2959, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2958
+ /* "lxml/etree.pyx":2969
* while result is None:
* event, element = self._nextEvent() # raises StopIteration
* if event == u"start": # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "lxml/etree.pyx":2960
+ /* "lxml/etree.pyx":2971
* if event == u"start":
* result = element.text
* elif element is not self._start_element: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":2961
+ /* "lxml/etree.pyx":2972
* result = element.text
* elif element is not self._start_element:
* result = element.tail # <<<<<<<<<<<<<<
* return result
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_tail); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2961, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_tail); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":2960
+ /* "lxml/etree.pyx":2971
* if event == u"start":
* result = element.text
* elif element is not self._start_element: # <<<<<<<<<<<<<<
__pyx_L7:;
}
- /* "lxml/etree.pyx":2962
+ /* "lxml/etree.pyx":2973
* elif element is not self._start_element:
* result = element.tail
* return result # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_result;
goto __pyx_L0;
- /* "lxml/etree.pyx":2953
+ /* "lxml/etree.pyx":2964
* return self
*
* def __next__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2964
+/* "lxml/etree.pyx":2975
* return result
*
* cdef xmlNode* _createElement(xmlDoc* c_doc, object name_utf) except NULL: # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_createElement", 0);
- /* "lxml/etree.pyx":2966
+ /* "lxml/etree.pyx":2977
* cdef xmlNode* _createElement(xmlDoc* c_doc, object name_utf) except NULL:
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocNode(c_doc, NULL, _xcstr(name_utf), NULL) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = xmlNewDocNode(__pyx_v_c_doc, NULL, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf), NULL);
- /* "lxml/etree.pyx":2967
+ /* "lxml/etree.pyx":2978
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocNode(c_doc, NULL, _xcstr(name_utf), NULL)
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2964
+ /* "lxml/etree.pyx":2975
* return result
*
* cdef xmlNode* _createElement(xmlDoc* c_doc, object name_utf) except NULL: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2969
+/* "lxml/etree.pyx":2980
* return c_node
*
* cdef xmlNode* _createComment(xmlDoc* c_doc, const_xmlChar* text): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_createComment", 0);
- /* "lxml/etree.pyx":2971
+ /* "lxml/etree.pyx":2982
* cdef xmlNode* _createComment(xmlDoc* c_doc, const_xmlChar* text):
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocComment(c_doc, text) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = xmlNewDocComment(__pyx_v_c_doc, __pyx_v_text);
- /* "lxml/etree.pyx":2972
+ /* "lxml/etree.pyx":2983
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocComment(c_doc, text)
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2969
+ /* "lxml/etree.pyx":2980
* return c_node
*
* cdef xmlNode* _createComment(xmlDoc* c_doc, const_xmlChar* text): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2974
+/* "lxml/etree.pyx":2985
* return c_node
*
* cdef xmlNode* _createPI(xmlDoc* c_doc, const_xmlChar* target, const_xmlChar* text): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_createPI", 0);
- /* "lxml/etree.pyx":2976
+ /* "lxml/etree.pyx":2987
* cdef xmlNode* _createPI(xmlDoc* c_doc, const_xmlChar* target, const_xmlChar* text):
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocPI(c_doc, target, text) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = xmlNewDocPI(__pyx_v_c_doc, __pyx_v_target, __pyx_v_text);
- /* "lxml/etree.pyx":2977
+ /* "lxml/etree.pyx":2988
* cdef xmlNode* c_node
* c_node = tree.xmlNewDocPI(c_doc, target, text)
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2974
+ /* "lxml/etree.pyx":2985
* return c_node
*
* cdef xmlNode* _createPI(xmlDoc* c_doc, const_xmlChar* target, const_xmlChar* text): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2979
+/* "lxml/etree.pyx":2990
* return c_node
*
* cdef xmlNode* _createEntity(xmlDoc* c_doc, const_xmlChar* name): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_createEntity", 0);
- /* "lxml/etree.pyx":2981
+ /* "lxml/etree.pyx":2992
* cdef xmlNode* _createEntity(xmlDoc* c_doc, const_xmlChar* name):
* cdef xmlNode* c_node
* c_node = tree.xmlNewReference(c_doc, name) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = xmlNewReference(__pyx_v_c_doc, __pyx_v_name);
- /* "lxml/etree.pyx":2982
+ /* "lxml/etree.pyx":2993
* cdef xmlNode* c_node
* c_node = tree.xmlNewReference(c_doc, name)
* return c_node # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_c_node;
goto __pyx_L0;
- /* "lxml/etree.pyx":2979
+ /* "lxml/etree.pyx":2990
* return c_node
*
* cdef xmlNode* _createEntity(xmlDoc* c_doc, const_xmlChar* name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":2986
+/* "lxml/etree.pyx":2997
* # module-level API for ElementTree
*
* def Element(_tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "Element") < 0)) __PYX_ERR(0, 2986, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "Element") < 0)) __PYX_ERR(0, 2997, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2986, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2997, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
__Pyx_AddTraceback("lxml.etree.Element", __pyx_clineno, __pyx_lineno, __pyx_filename);
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("Element", 0);
- /* "lxml/etree.pyx":2996
+ /* "lxml/etree.pyx":3007
* create an Element within a specific document or parser context.
* """
* return _makeElement(_tag, NULL, None, None, None, None, # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "lxml/etree.pyx":2997
+ /* "lxml/etree.pyx":3008
* """
* return _makeElement(_tag, NULL, None, None, None, None,
* attrib, nsmap, _extra) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2996, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3007, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":2986
+ /* "lxml/etree.pyx":2997
* # module-level API for ElementTree
*
* def Element(_tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3000
+/* "lxml/etree.pyx":3011
*
*
* def Comment(text=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Comment") < 0)) __PYX_ERR(0, 3000, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Comment") < 0)) __PYX_ERR(0, 3011, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("Comment", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3000, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("Comment", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3011, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.Comment", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("Comment", 0);
__Pyx_INCREF(__pyx_v_text);
- /* "lxml/etree.pyx":3010
+ /* "lxml/etree.pyx":3021
* cdef xmlDoc* c_doc
*
* if text is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3011
+ /* "lxml/etree.pyx":3022
*
* if text is None:
* text = b'' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_kp_b__11);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_kp_b__11);
- /* "lxml/etree.pyx":3010
+ /* "lxml/etree.pyx":3021
* cdef xmlDoc* c_doc
*
* if text is None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":3013
+ /* "lxml/etree.pyx":3024
* text = b''
* else:
* text = _utf8(text) # <<<<<<<<<<<<<<
* raise ValueError("Comment may not contain '--' or end with '-'")
*/
/*else*/ {
- __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3013, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3014
+ /* "lxml/etree.pyx":3025
* else:
* text = _utf8(text)
* if b'--' in text or text.endswith(b'-'): # <<<<<<<<<<<<<<
* raise ValueError("Comment may not contain '--' or end with '-'")
*
*/
- __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__44, __pyx_v_text, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3014, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__44, __pyx_v_text, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3025, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_1 != 0);
if (!__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L5_bool_binop_done;
}
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_text, __pyx_n_s_endswith); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3014, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_text, __pyx_n_s_endswith); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_kp_b__2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__2);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3014, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3014, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3025, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __pyx_t_4;
__pyx_L5_bool_binop_done:;
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3015
+ /* "lxml/etree.pyx":3026
* text = _utf8(text)
* if b'--' in text or text.endswith(b'-'):
* raise ValueError("Comment may not contain '--' or end with '-'") # <<<<<<<<<<<<<<
*
* c_doc = _newXMLDoc()
*/
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3015, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3015, __pyx_L1_error)
+ __PYX_ERR(0, 3026, __pyx_L1_error)
- /* "lxml/etree.pyx":3014
+ /* "lxml/etree.pyx":3025
* else:
* text = _utf8(text)
* if b'--' in text or text.endswith(b'-'): # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":3017
+ /* "lxml/etree.pyx":3028
* raise ValueError("Comment may not contain '--' or end with '-'")
*
* c_doc = _newXMLDoc() # <<<<<<<<<<<<<<
* doc = _documentFactory(c_doc, None)
* c_node = _createComment(c_doc, _xcstr(text))
*/
- __pyx_t_7 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_7 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3017, __pyx_L1_error)
+ __pyx_t_7 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_7 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3028, __pyx_L1_error)
__pyx_v_c_doc = __pyx_t_7;
- /* "lxml/etree.pyx":3018
+ /* "lxml/etree.pyx":3029
*
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None) # <<<<<<<<<<<<<<
* c_node = _createComment(c_doc, _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3018, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3029, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3019
+ /* "lxml/etree.pyx":3030
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
* c_node = _createComment(c_doc, _xcstr(text)) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_f_4lxml_5etree__createComment(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
- /* "lxml/etree.pyx":3020
+ /* "lxml/etree.pyx":3031
* doc = _documentFactory(c_doc, None)
* c_node = _createComment(c_doc, _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node) # <<<<<<<<<<<<<<
*/
(void)(xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node));
- /* "lxml/etree.pyx":3021
+ /* "lxml/etree.pyx":3032
* c_node = _createComment(c_doc, _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
* return _elementFactory(doc, c_node) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3021, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3032, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3000
+ /* "lxml/etree.pyx":3011
*
*
* def Comment(text=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3024
+/* "lxml/etree.pyx":3035
*
*
* def ProcessingInstruction(target, text=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ProcessingInstruction") < 0)) __PYX_ERR(0, 3024, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ProcessingInstruction") < 0)) __PYX_ERR(0, 3035, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("ProcessingInstruction", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3024, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("ProcessingInstruction", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3035, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ProcessingInstruction", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_target);
__Pyx_INCREF(__pyx_v_text);
- /* "lxml/etree.pyx":3034
+ /* "lxml/etree.pyx":3045
* cdef xmlDoc* c_doc
*
* target = _utf8(target) # <<<<<<<<<<<<<<
* _tagValidOrRaise(target)
* if target.lower() == b'xml':
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3034, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_target); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3045, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_target, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3035
+ /* "lxml/etree.pyx":3046
*
* target = _utf8(target)
* _tagValidOrRaise(target) # <<<<<<<<<<<<<<
* if target.lower() == b'xml':
* raise ValueError, f"Invalid PI name '{target}'"
*/
- __pyx_t_2 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_target); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 3035, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_target); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 3046, __pyx_L1_error)
- /* "lxml/etree.pyx":3036
+ /* "lxml/etree.pyx":3047
* target = _utf8(target)
* _tagValidOrRaise(target)
* if target.lower() == b'xml': # <<<<<<<<<<<<<<
* raise ValueError, f"Invalid PI name '{target}'"
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3036, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3036, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_5 = (__Pyx_PyBytes_Equals(__pyx_t_1, __pyx_n_b_xml, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3036, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PyBytes_Equals(__pyx_t_1, __pyx_n_b_xml, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":3037
+ /* "lxml/etree.pyx":3048
* _tagValidOrRaise(target)
* if target.lower() == b'xml':
* raise ValueError, f"Invalid PI name '{target}'" # <<<<<<<<<<<<<<
*
* if text is None:
*/
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3037, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = 0;
__pyx_t_7 = 127;
__pyx_t_6 += 17;
__Pyx_GIVEREF(__pyx_kp_u_Invalid_PI_name);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Invalid_PI_name);
- __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_target, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3037, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_target, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_7;
__pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__pyx_t_6 += 1;
__Pyx_GIVEREF(__pyx_kp_u__21);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__21);
- __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3037, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3048, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_3, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3037, __pyx_L1_error)
+ __PYX_ERR(0, 3048, __pyx_L1_error)
- /* "lxml/etree.pyx":3036
+ /* "lxml/etree.pyx":3047
* target = _utf8(target)
* _tagValidOrRaise(target)
* if target.lower() == b'xml': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3039
+ /* "lxml/etree.pyx":3050
* raise ValueError, f"Invalid PI name '{target}'"
*
* if text is None: # <<<<<<<<<<<<<<
__pyx_t_8 = (__pyx_t_5 != 0);
if (__pyx_t_8) {
- /* "lxml/etree.pyx":3040
+ /* "lxml/etree.pyx":3051
*
* if text is None:
* text = b'' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_kp_b__11);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_kp_b__11);
- /* "lxml/etree.pyx":3039
+ /* "lxml/etree.pyx":3050
* raise ValueError, f"Invalid PI name '{target}'"
*
* if text is None: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/etree.pyx":3042
+ /* "lxml/etree.pyx":3053
* text = b''
* else:
* text = _utf8(text) # <<<<<<<<<<<<<<
* raise ValueError, "PI text must not contain '?>'"
*/
/*else*/ {
- __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3042, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__utf8(__pyx_v_text); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3043
+ /* "lxml/etree.pyx":3054
* else:
* text = _utf8(text)
* if b'?>' in text: # <<<<<<<<<<<<<<
* raise ValueError, "PI text must not contain '?>'"
*
*/
- __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__46, __pyx_v_text, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 3043, __pyx_L1_error)
+ __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__46, __pyx_v_text, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 3054, __pyx_L1_error)
__pyx_t_5 = (__pyx_t_8 != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":3044
+ /* "lxml/etree.pyx":3055
* text = _utf8(text)
* if b'?>' in text:
* raise ValueError, "PI text must not contain '?>'" # <<<<<<<<<<<<<<
* c_doc = _newXMLDoc()
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_PI_text_must_not_contain, 0, 0);
- __PYX_ERR(0, 3044, __pyx_L1_error)
+ __PYX_ERR(0, 3055, __pyx_L1_error)
- /* "lxml/etree.pyx":3043
+ /* "lxml/etree.pyx":3054
* else:
* text = _utf8(text)
* if b'?>' in text: # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "lxml/etree.pyx":3046
+ /* "lxml/etree.pyx":3057
* raise ValueError, "PI text must not contain '?>'"
*
* c_doc = _newXMLDoc() # <<<<<<<<<<<<<<
* doc = _documentFactory(c_doc, None)
* c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
*/
- __pyx_t_9 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_9 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3046, __pyx_L1_error)
+ __pyx_t_9 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_9 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3057, __pyx_L1_error)
__pyx_v_c_doc = __pyx_t_9;
- /* "lxml/etree.pyx":3047
+ /* "lxml/etree.pyx":3058
*
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None) # <<<<<<<<<<<<<<
* c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3047, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3048
+ /* "lxml/etree.pyx":3059
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
* c_node = _createPI(c_doc, _xcstr(target), _xcstr(text)) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_f_4lxml_5etree__createPI(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_target), (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
- /* "lxml/etree.pyx":3049
+ /* "lxml/etree.pyx":3060
* doc = _documentFactory(c_doc, None)
* c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node) # <<<<<<<<<<<<<<
*/
(void)(xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node));
- /* "lxml/etree.pyx":3050
+ /* "lxml/etree.pyx":3061
* c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
* return _elementFactory(doc, c_node) # <<<<<<<<<<<<<<
* PI = ProcessingInstruction
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3050, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3024
+ /* "lxml/etree.pyx":3035
*
*
* def ProcessingInstruction(target, text=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3070
+/* "lxml/etree.pyx":3081
* """
* cdef bytes _utf8_data
* def __cinit__(self, data): # <<<<<<<<<<<<<<
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3070, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3081, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3070, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3081, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.CDATA.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
int __pyx_t_3;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":3071
+ /* "lxml/etree.pyx":3082
* cdef bytes _utf8_data
* def __cinit__(self, data):
* _utf8_data = _utf8(data) # <<<<<<<<<<<<<<
* if b']]>' in _utf8_data:
* raise ValueError, "']]>' not allowed inside CDATA"
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3071, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v__utf8_data = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3072
+ /* "lxml/etree.pyx":3083
* def __cinit__(self, data):
* _utf8_data = _utf8(data)
* if b']]>' in _utf8_data: # <<<<<<<<<<<<<<
* raise ValueError, "']]>' not allowed inside CDATA"
* self._utf8_data = _utf8_data
*/
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__47, __pyx_v__utf8_data, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3072, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__47, __pyx_v__utf8_data, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3083, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (unlikely(__pyx_t_3)) {
- /* "lxml/etree.pyx":3073
+ /* "lxml/etree.pyx":3084
* _utf8_data = _utf8(data)
* if b']]>' in _utf8_data:
* raise ValueError, "']]>' not allowed inside CDATA" # <<<<<<<<<<<<<<
*
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_not_allowed_inside_CDATA, 0, 0);
- __PYX_ERR(0, 3073, __pyx_L1_error)
+ __PYX_ERR(0, 3084, __pyx_L1_error)
- /* "lxml/etree.pyx":3072
+ /* "lxml/etree.pyx":3083
* def __cinit__(self, data):
* _utf8_data = _utf8(data)
* if b']]>' in _utf8_data: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3074
+ /* "lxml/etree.pyx":3085
* if b']]>' in _utf8_data:
* raise ValueError, "']]>' not allowed inside CDATA"
* self._utf8_data = _utf8_data # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->_utf8_data);
__pyx_v_self->_utf8_data = __pyx_v__utf8_data;
- /* "lxml/etree.pyx":3070
+ /* "lxml/etree.pyx":3081
* """
* cdef bytes _utf8_data
* def __cinit__(self, data): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3077
+/* "lxml/etree.pyx":3088
*
*
* def Entity(name): # <<<<<<<<<<<<<<
xmlDoc *__pyx_t_6;
__Pyx_RefNannySetupContext("Entity", 0);
- /* "lxml/etree.pyx":3089
+ /* "lxml/etree.pyx":3100
* cdef xmlNode* c_node
* cdef xmlDoc* c_doc
* name_utf = _utf8(name) # <<<<<<<<<<<<<<
* c_name = _xcstr(name_utf)
* if c_name[0] == c'#':
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3089, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree__utf8(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_name_utf = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3090
+ /* "lxml/etree.pyx":3101
* cdef xmlDoc* c_doc
* name_utf = _utf8(name)
* c_name = _xcstr(name_utf) # <<<<<<<<<<<<<<
*/
__pyx_v_c_name = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf);
- /* "lxml/etree.pyx":3091
+ /* "lxml/etree.pyx":3102
* name_utf = _utf8(name)
* c_name = _xcstr(name_utf)
* if c_name[0] == c'#': # <<<<<<<<<<<<<<
__pyx_t_2 = (((__pyx_v_c_name[0]) == '#') != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3092
+ /* "lxml/etree.pyx":3103
* c_name = _xcstr(name_utf)
* if c_name[0] == c'#':
* if not _characterReferenceIsValid(c_name + 1): # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)) != 0)) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3093
+ /* "lxml/etree.pyx":3104
* if c_name[0] == c'#':
* if not _characterReferenceIsValid(c_name + 1):
* raise ValueError, f"Invalid character reference: '{name}'" # <<<<<<<<<<<<<<
* elif not _xmlNameIsValid(c_name):
* raise ValueError, f"Invalid entity reference: '{name}'"
*/
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3093, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3104, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = 0;
__pyx_t_4 = 127;
__pyx_t_3 += 30;
__Pyx_GIVEREF(__pyx_kp_u_Invalid_character_reference);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Invalid_character_reference);
- __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3093, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3104, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_4;
__pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__pyx_t_3 += 1;
__Pyx_GIVEREF(__pyx_kp_u__21);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u__21);
- __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3093, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3104, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_5, 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __PYX_ERR(0, 3093, __pyx_L1_error)
+ __PYX_ERR(0, 3104, __pyx_L1_error)
- /* "lxml/etree.pyx":3092
+ /* "lxml/etree.pyx":3103
* c_name = _xcstr(name_utf)
* if c_name[0] == c'#':
* if not _characterReferenceIsValid(c_name + 1): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3091
+ /* "lxml/etree.pyx":3102
* name_utf = _utf8(name)
* c_name = _xcstr(name_utf)
* if c_name[0] == c'#': # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":3094
+ /* "lxml/etree.pyx":3105
* if not _characterReferenceIsValid(c_name + 1):
* raise ValueError, f"Invalid character reference: '{name}'"
* elif not _xmlNameIsValid(c_name): # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name) != 0)) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3095
+ /* "lxml/etree.pyx":3106
* raise ValueError, f"Invalid character reference: '{name}'"
* elif not _xmlNameIsValid(c_name):
* raise ValueError, f"Invalid entity reference: '{name}'" # <<<<<<<<<<<<<<
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
*/
- __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3095, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = 0;
__pyx_t_4 = 127;
__pyx_t_3 += 27;
__Pyx_GIVEREF(__pyx_kp_u_Invalid_entity_reference);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Invalid_entity_reference);
- __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3095, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_4) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_4;
__pyx_t_3 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
__pyx_t_3 += 1;
__Pyx_GIVEREF(__pyx_kp_u__21);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u__21);
- __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3095, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3106, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_1, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __PYX_ERR(0, 3095, __pyx_L1_error)
+ __PYX_ERR(0, 3106, __pyx_L1_error)
- /* "lxml/etree.pyx":3094
+ /* "lxml/etree.pyx":3105
* if not _characterReferenceIsValid(c_name + 1):
* raise ValueError, f"Invalid character reference: '{name}'"
* elif not _xmlNameIsValid(c_name): # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/etree.pyx":3096
+ /* "lxml/etree.pyx":3107
* elif not _xmlNameIsValid(c_name):
* raise ValueError, f"Invalid entity reference: '{name}'"
* c_doc = _newXMLDoc() # <<<<<<<<<<<<<<
* doc = _documentFactory(c_doc, None)
* c_node = _createEntity(c_doc, c_name)
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_6 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3096, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_6 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3107, __pyx_L1_error)
__pyx_v_c_doc = __pyx_t_6;
- /* "lxml/etree.pyx":3097
+ /* "lxml/etree.pyx":3108
* raise ValueError, f"Invalid entity reference: '{name}'"
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None) # <<<<<<<<<<<<<<
* c_node = _createEntity(c_doc, c_name)
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3097, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3108, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3098
+ /* "lxml/etree.pyx":3109
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, None)
* c_node = _createEntity(c_doc, c_name) # <<<<<<<<<<<<<<
*/
__pyx_v_c_node = __pyx_f_4lxml_5etree__createEntity(__pyx_v_c_doc, __pyx_v_c_name);
- /* "lxml/etree.pyx":3099
+ /* "lxml/etree.pyx":3110
* doc = _documentFactory(c_doc, None)
* c_node = _createEntity(c_doc, c_name)
* tree.xmlAddChild(<xmlNode*>c_doc, c_node) # <<<<<<<<<<<<<<
*/
(void)(xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node));
- /* "lxml/etree.pyx":3100
+ /* "lxml/etree.pyx":3111
* c_node = _createEntity(c_doc, c_name)
* tree.xmlAddChild(<xmlNode*>c_doc, c_node)
* return _elementFactory(doc, c_node) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3100, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3077
+ /* "lxml/etree.pyx":3088
*
*
* def Entity(name): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3103
+/* "lxml/etree.pyx":3114
*
*
* def SubElement(_Element _parent not None, _tag, # <<<<<<<<<<<<<<
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_parent,&__pyx_n_s_tag_2,&__pyx_n_s_attrib,&__pyx_n_s_nsmap,0};
PyObject* values[4] = {0,0,0,0};
- /* "lxml/etree.pyx":3104
+ /* "lxml/etree.pyx":3115
*
* def SubElement(_Element _parent not None, _tag,
* attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tag_2)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, 1); __PYX_ERR(0, 3103, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, 1); __PYX_ERR(0, 3114, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "SubElement") < 0)) __PYX_ERR(0, 3103, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "SubElement") < 0)) __PYX_ERR(0, 3114, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3103, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3114, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
__Pyx_AddTraceback("lxml.etree.SubElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__parent), __pyx_ptype_4lxml_5etree__Element, 0, "_parent", 0))) __PYX_ERR(0, 3103, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__parent), __pyx_ptype_4lxml_5etree__Element, 0, "_parent", 0))) __PYX_ERR(0, 3114, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_14SubElement(__pyx_self, __pyx_v__parent, __pyx_v__tag, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra);
- /* "lxml/etree.pyx":3103
+ /* "lxml/etree.pyx":3114
*
*
* def SubElement(_Element _parent not None, _tag, # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("SubElement", 0);
- /* "lxml/etree.pyx":3110
+ /* "lxml/etree.pyx":3121
* appends it to an existing element.
* """
* return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(__pyx_v__parent, __pyx_v__tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3110, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(__pyx_v__parent, __pyx_v__tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3121, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3103
+ /* "lxml/etree.pyx":3114
*
*
* def SubElement(_Element _parent not None, _tag, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3113
+/* "lxml/etree.pyx":3124
*
*
* def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ElementTree") < 0)) __PYX_ERR(0, 3113, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ElementTree") < 0)) __PYX_ERR(0, 3124, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("ElementTree", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3113, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("ElementTree", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3124, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 1, "element", 0))) __PYX_ERR(0, 3113, __pyx_L1_error)
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3113, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 1, "element", 0))) __PYX_ERR(0, 3124, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3124, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_16ElementTree(__pyx_self, __pyx_v_element, __pyx_v_file, __pyx_v_parser);
/* function exit code */
xmlDoc *__pyx_t_11;
__Pyx_RefNannySetupContext("ElementTree", 0);
- /* "lxml/etree.pyx":3125
+ /* "lxml/etree.pyx":3136
* cdef _Document doc
*
* if element is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3126
+ /* "lxml/etree.pyx":3137
*
* if element is not None:
* doc = element._doc # <<<<<<<<<<<<<<
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3125
+ /* "lxml/etree.pyx":3136
* cdef _Document doc
*
* if element is not None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":3127
+ /* "lxml/etree.pyx":3138
* if element is not None:
* doc = element._doc
* elif file is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3128
+ /* "lxml/etree.pyx":3139
* doc = element._doc
* elif file is not None:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_6);
/*try:*/ {
- /* "lxml/etree.pyx":3129
+ /* "lxml/etree.pyx":3140
* elif file is not None:
* try:
* doc = _parseDocument(file, parser, None) # <<<<<<<<<<<<<<
* except _TargetParserResult as result_container:
* return result_container.result
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3129, __pyx_L4_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3140, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3128
+ /* "lxml/etree.pyx":3139
* doc = element._doc
* elif file is not None:
* try: # <<<<<<<<<<<<<<
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":3130
+ /* "lxml/etree.pyx":3141
* try:
* doc = _parseDocument(file, parser, None)
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
* else:
*/
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_7, &__pyx_t_8);
- __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3130, __pyx_L6_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3141, __pyx_L6_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
if (__pyx_t_10) {
__Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3130, __pyx_L6_except_error)
+ if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3141, __pyx_L6_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_7);
__pyx_v_result_container = __pyx_t_7;
- /* "lxml/etree.pyx":3131
+ /* "lxml/etree.pyx":3142
* doc = _parseDocument(file, parser, None)
* except _TargetParserResult as result_container:
* return result_container.result # <<<<<<<<<<<<<<
* c_doc = _newXMLDoc()
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3131, __pyx_L6_except_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3142, __pyx_L6_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L6_except_error;
__pyx_L6_except_error:;
- /* "lxml/etree.pyx":3128
+ /* "lxml/etree.pyx":3139
* doc = element._doc
* elif file is not None:
* try: # <<<<<<<<<<<<<<
__pyx_L9_try_end:;
}
- /* "lxml/etree.pyx":3127
+ /* "lxml/etree.pyx":3138
* if element is not None:
* doc = element._doc
* elif file is not None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/etree.pyx":3133
+ /* "lxml/etree.pyx":3144
* return result_container.result
* else:
* c_doc = _newXMLDoc() # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_11 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_11 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3133, __pyx_L1_error)
+ __pyx_t_11 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_11 == ((xmlDoc *)NULL))) __PYX_ERR(0, 3144, __pyx_L1_error)
__pyx_v_c_doc = __pyx_t_11;
- /* "lxml/etree.pyx":3134
+ /* "lxml/etree.pyx":3145
* else:
* c_doc = _newXMLDoc()
* doc = _documentFactory(c_doc, parser) # <<<<<<<<<<<<<<
*
* return _elementTreeFactory(doc, element)
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3134, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L3:;
- /* "lxml/etree.pyx":3136
+ /* "lxml/etree.pyx":3147
* doc = _documentFactory(c_doc, parser)
*
* return _elementTreeFactory(doc, element) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3136, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3113
+ /* "lxml/etree.pyx":3124
*
*
* def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3139
+/* "lxml/etree.pyx":3150
*
*
* def HTML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HTML") < 0)) __PYX_ERR(0, 3139, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HTML") < 0)) __PYX_ERR(0, 3150, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("HTML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3139, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("HTML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3150, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.HTML", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3139, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3150, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_18HTML(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
/* function exit code */
__Pyx_RefNannySetupContext("HTML", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "lxml/etree.pyx":3154
+ /* "lxml/etree.pyx":3165
* """
* cdef _Document doc
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3155
+ /* "lxml/etree.pyx":3166
* cdef _Document doc
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* if not isinstance(parser, HTMLParser):
* parser = __DEFAULT_HTML_PARSER
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3155, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3166, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3156
+ /* "lxml/etree.pyx":3167
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, HTMLParser): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3157
+ /* "lxml/etree.pyx":3168
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, HTMLParser):
* parser = __DEFAULT_HTML_PARSER # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
__Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
- /* "lxml/etree.pyx":3156
+ /* "lxml/etree.pyx":3167
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, HTMLParser): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3154
+ /* "lxml/etree.pyx":3165
* """
* cdef _Document doc
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3158
+ /* "lxml/etree.pyx":3169
* if not isinstance(parser, HTMLParser):
* parser = __DEFAULT_HTML_PARSER
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_6);
/*try:*/ {
- /* "lxml/etree.pyx":3159
+ /* "lxml/etree.pyx":3170
* parser = __DEFAULT_HTML_PARSER
* try:
* doc = _parseMemoryDocument(text, base_url, parser) # <<<<<<<<<<<<<<
* return doc.getroot()
* except _TargetParserResult as result_container:
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3159, __pyx_L5_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3170, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3160
+ /* "lxml/etree.pyx":3171
* try:
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot() # <<<<<<<<<<<<<<
* return result_container.result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3160, __pyx_L5_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3171, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L9_try_return;
- /* "lxml/etree.pyx":3158
+ /* "lxml/etree.pyx":3169
* if not isinstance(parser, HTMLParser):
* parser = __DEFAULT_HTML_PARSER
* try: # <<<<<<<<<<<<<<
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":3161
+ /* "lxml/etree.pyx":3172
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot()
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
*
*/
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_7, &__pyx_t_8);
- __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3161, __pyx_L7_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3172, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
if (__pyx_t_10) {
__Pyx_AddTraceback("lxml.etree.HTML", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3161, __pyx_L7_except_error)
+ if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3172, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_7);
__pyx_v_result_container = __pyx_t_7;
- /* "lxml/etree.pyx":3162
+ /* "lxml/etree.pyx":3173
* return doc.getroot()
* except _TargetParserResult as result_container:
* return result_container.result # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3162, __pyx_L7_except_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3173, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L7_except_error;
__pyx_L7_except_error:;
- /* "lxml/etree.pyx":3158
+ /* "lxml/etree.pyx":3169
* if not isinstance(parser, HTMLParser):
* parser = __DEFAULT_HTML_PARSER
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/etree.pyx":3139
+ /* "lxml/etree.pyx":3150
*
*
* def HTML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3165
+/* "lxml/etree.pyx":3176
*
*
* def XML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) __PYX_ERR(0, 3165, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) __PYX_ERR(0, 3176, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3165, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3176, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3165, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3176, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_20XML(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
/* function exit code */
__Pyx_RefNannySetupContext("XML", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "lxml/etree.pyx":3185
+ /* "lxml/etree.pyx":3196
* """
* cdef _Document doc
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3186
+ /* "lxml/etree.pyx":3197
* cdef _Document doc
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* if not isinstance(parser, XMLParser):
* parser = __DEFAULT_XML_PARSER
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3186, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3187
+ /* "lxml/etree.pyx":3198
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, XMLParser): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3188
+ /* "lxml/etree.pyx":3199
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, XMLParser):
* parser = __DEFAULT_XML_PARSER # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
__Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
- /* "lxml/etree.pyx":3187
+ /* "lxml/etree.pyx":3198
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* if not isinstance(parser, XMLParser): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3185
+ /* "lxml/etree.pyx":3196
* """
* cdef _Document doc
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3189
+ /* "lxml/etree.pyx":3200
* if not isinstance(parser, XMLParser):
* parser = __DEFAULT_XML_PARSER
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_6);
/*try:*/ {
- /* "lxml/etree.pyx":3190
+ /* "lxml/etree.pyx":3201
* parser = __DEFAULT_XML_PARSER
* try:
* doc = _parseMemoryDocument(text, base_url, parser) # <<<<<<<<<<<<<<
* return doc.getroot()
* except _TargetParserResult as result_container:
*/
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3190, __pyx_L5_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3201, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/etree.pyx":3191
+ /* "lxml/etree.pyx":3202
* try:
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot() # <<<<<<<<<<<<<<
* return result_container.result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3191, __pyx_L5_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3202, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L9_try_return;
- /* "lxml/etree.pyx":3189
+ /* "lxml/etree.pyx":3200
* if not isinstance(parser, XMLParser):
* parser = __DEFAULT_XML_PARSER
* try: # <<<<<<<<<<<<<<
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/etree.pyx":3192
+ /* "lxml/etree.pyx":3203
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot()
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
*
*/
__Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_7, &__pyx_t_8);
- __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3192, __pyx_L7_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3203, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0;
if (__pyx_t_10) {
__Pyx_AddTraceback("lxml.etree.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3192, __pyx_L7_except_error)
+ if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(0, 3203, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_7);
__pyx_v_result_container = __pyx_t_7;
- /* "lxml/etree.pyx":3193
+ /* "lxml/etree.pyx":3204
* return doc.getroot()
* except _TargetParserResult as result_container:
* return result_container.result # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3193, __pyx_L7_except_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3204, __pyx_L7_except_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L7_except_error;
__pyx_L7_except_error:;
- /* "lxml/etree.pyx":3189
+ /* "lxml/etree.pyx":3200
* if not isinstance(parser, XMLParser):
* parser = __DEFAULT_XML_PARSER
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/etree.pyx":3165
+ /* "lxml/etree.pyx":3176
*
*
* def XML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3196
+/* "lxml/etree.pyx":3207
*
*
* def fromstring(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) __PYX_ERR(0, 3196, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) __PYX_ERR(0, 3207, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3196, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3207, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3196, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3207, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_22fromstring(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
/* function exit code */
int __pyx_t_8;
__Pyx_RefNannySetupContext("fromstring", 0);
- /* "lxml/etree.pyx":3210
+ /* "lxml/etree.pyx":3221
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "lxml/etree.pyx":3211
+ /* "lxml/etree.pyx":3222
* cdef _Document doc
* try:
* doc = _parseMemoryDocument(text, base_url, parser) # <<<<<<<<<<<<<<
* return doc.getroot()
* except _TargetParserResult as result_container:
*/
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3211, __pyx_L3_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3222, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3212
+ /* "lxml/etree.pyx":3223
* try:
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot() # <<<<<<<<<<<<<<
* return result_container.result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3212, __pyx_L3_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3223, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L7_try_return;
- /* "lxml/etree.pyx":3210
+ /* "lxml/etree.pyx":3221
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":3213
+ /* "lxml/etree.pyx":3224
* doc = _parseMemoryDocument(text, base_url, parser)
* return doc.getroot()
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
*
*/
__Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
- __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3213, __pyx_L5_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3224, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
if (__pyx_t_8) {
__Pyx_AddTraceback("lxml.etree.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 3213, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 3224, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__pyx_v_result_container = __pyx_t_5;
- /* "lxml/etree.pyx":3214
+ /* "lxml/etree.pyx":3225
* return doc.getroot()
* except _TargetParserResult as result_container:
* return result_container.result # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3214, __pyx_L5_except_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3225, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_r = __pyx_t_7;
__pyx_t_7 = 0;
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "lxml/etree.pyx":3210
+ /* "lxml/etree.pyx":3221
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/etree.pyx":3196
+ /* "lxml/etree.pyx":3207
*
*
* def fromstring(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3217
+/* "lxml/etree.pyx":3228
*
*
* def fromstringlist(strings, _BaseParser parser=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstringlist") < 0)) __PYX_ERR(0, 3217, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstringlist") < 0)) __PYX_ERR(0, 3228, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("fromstringlist", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3217, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("fromstringlist", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3228, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.fromstringlist", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3217, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3228, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_24fromstringlist(__pyx_self, __pyx_v_strings, __pyx_v_parser);
/* function exit code */
__Pyx_RefNannySetupContext("fromstringlist", 0);
__Pyx_INCREF((PyObject *)__pyx_v_parser);
- /* "lxml/etree.pyx":3227
+ /* "lxml/etree.pyx":3238
* """
* cdef _Document doc
* if isinstance(strings, (bytes, unicode)): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3228
+ /* "lxml/etree.pyx":3239
* cdef _Document doc
* if isinstance(strings, (bytes, unicode)):
* raise ValueError("passing a single string into fromstringlist() is not" # <<<<<<<<<<<<<<
* " efficient, use fromstring() instead")
* if parser is None:
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3228, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3239, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(0, 3228, __pyx_L1_error)
+ __PYX_ERR(0, 3239, __pyx_L1_error)
- /* "lxml/etree.pyx":3227
+ /* "lxml/etree.pyx":3238
* """
* cdef _Document doc
* if isinstance(strings, (bytes, unicode)): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3230
+ /* "lxml/etree.pyx":3241
* raise ValueError("passing a single string into fromstringlist() is not"
* " efficient, use fromstring() instead")
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3231
+ /* "lxml/etree.pyx":3242
* " efficient, use fromstring() instead")
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser() # <<<<<<<<<<<<<<
* feed = parser.feed
* for data in strings:
*/
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3231, __pyx_L1_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3230
+ /* "lxml/etree.pyx":3241
* raise ValueError("passing a single string into fromstringlist() is not"
* " efficient, use fromstring() instead")
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3232
+ /* "lxml/etree.pyx":3243
* if parser is None:
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* feed = parser.feed # <<<<<<<<<<<<<<
* for data in strings:
* feed(data)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s_feed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3232, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s_feed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_feed = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3233
+ /* "lxml/etree.pyx":3244
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* feed = parser.feed
* for data in strings: # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_strings; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
- __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3244, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3244, __pyx_L1_error)
#else
- __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3244, __pyx_L1_error)
#else
- __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3233, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3244, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 3233, __pyx_L1_error)
+ else __PYX_ERR(0, 3244, __pyx_L1_error)
}
break;
}
__Pyx_XDECREF_SET(__pyx_v_data, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/etree.pyx":3234
+ /* "lxml/etree.pyx":3245
* feed = parser.feed
* for data in strings:
* feed(data) # <<<<<<<<<<<<<<
}
__pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_data);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3234, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "lxml/etree.pyx":3233
+ /* "lxml/etree.pyx":3244
* parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
* feed = parser.feed
* for data in strings: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":3235
+ /* "lxml/etree.pyx":3246
* for data in strings:
* feed(data)
* return parser.close() # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s_close); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3235, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s_close); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
}
__pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3235, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3246, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3217
+ /* "lxml/etree.pyx":3228
*
*
* def fromstringlist(strings, _BaseParser parser=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3238
+/* "lxml/etree.pyx":3249
*
*
* def iselement(element): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("iselement", 0);
- /* "lxml/etree.pyx":3243
+ /* "lxml/etree.pyx":3254
* Checks if an object appears to be a valid element object.
* """
* return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL # <<<<<<<<<<<<<<
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element, __pyx_ptype_4lxml_5etree__Element);
if (__pyx_t_2) {
} else {
- __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3243, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L3_bool_binop_done;
}
__pyx_t_2 = (((struct LxmlElement *)__pyx_v_element)->_c_node != NULL);
- __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3243, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3238
+ /* "lxml/etree.pyx":3249
*
*
* def iselement(element): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3246
+/* "lxml/etree.pyx":3257
*
*
* def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dump") < 0)) __PYX_ERR(0, 3246, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dump") < 0)) __PYX_ERR(0, 3257, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
__pyx_v_elem = ((struct LxmlElement *)values[0]);
if (values[1]) {
- __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3246, __pyx_L3_error)
+ __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3257, __pyx_L3_error)
} else {
__pyx_v_pretty_print = ((int)((int)1));
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("dump", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3246, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("dump", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3257, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.dump", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elem), __pyx_ptype_4lxml_5etree__Element, 0, "elem", 0))) __PYX_ERR(0, 3246, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elem), __pyx_ptype_4lxml_5etree__Element, 0, "elem", 0))) __PYX_ERR(0, 3257, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_28dump(__pyx_self, __pyx_v_elem, __pyx_v_pretty_print, __pyx_v_with_tail);
/* function exit code */
int __pyx_t_5;
__Pyx_RefNannySetupContext("dump", 0);
- /* "lxml/etree.pyx":3252
+ /* "lxml/etree.pyx":3263
* should be used for debugging only.
* """
* xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail, # <<<<<<<<<<<<<<
* encoding=None if python.IS_PYTHON2 else 'unicode')
* if not pretty_print:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tostring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3252, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tostring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3252, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(((PyObject *)__pyx_v_elem));
__Pyx_GIVEREF(((PyObject *)__pyx_v_elem));
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_elem));
- __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3252, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_pretty_print); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3252, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_pretty_print); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pretty_print, __pyx_t_4) < 0) __PYX_ERR(0, 3252, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_pretty_print, __pyx_t_4) < 0) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_with_tail, __pyx_v_with_tail) < 0) __PYX_ERR(0, 3252, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_with_tail, __pyx_v_with_tail) < 0) __PYX_ERR(0, 3263, __pyx_L1_error)
- /* "lxml/etree.pyx":3253
+ /* "lxml/etree.pyx":3264
* """
* xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,
* encoding=None if python.IS_PYTHON2 else 'unicode') # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_s_unicode);
__pyx_t_4 = __pyx_n_s_unicode;
}
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_encoding, __pyx_t_4) < 0) __PYX_ERR(0, 3252, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_encoding, __pyx_t_4) < 0) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":3252
+ /* "lxml/etree.pyx":3263
* should be used for debugging only.
* """
* xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail, # <<<<<<<<<<<<<<
* encoding=None if python.IS_PYTHON2 else 'unicode')
* if not pretty_print:
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3252, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3263, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_xml = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3254
+ /* "lxml/etree.pyx":3265
* xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,
* encoding=None if python.IS_PYTHON2 else 'unicode')
* if not pretty_print: # <<<<<<<<<<<<<<
__pyx_t_5 = ((!(__pyx_v_pretty_print != 0)) != 0);
if (__pyx_t_5) {
- /* "lxml/etree.pyx":3255
+ /* "lxml/etree.pyx":3266
* encoding=None if python.IS_PYTHON2 else 'unicode')
* if not pretty_print:
* xml += '\n' # <<<<<<<<<<<<<<
* sys.stdout.write(xml)
*
*/
- __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, __pyx_kp_s__18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3255, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, __pyx_kp_s__18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3266, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_xml, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3254
+ /* "lxml/etree.pyx":3265
* xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,
* encoding=None if python.IS_PYTHON2 else 'unicode')
* if not pretty_print: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3256
+ /* "lxml/etree.pyx":3267
* if not pretty_print:
* xml += '\n'
* sys.stdout.write(xml) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_stdout); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3256, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_stdout); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3267, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3256, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3267, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
}
__pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_xml) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_xml);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3256, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3267, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":3246
+ /* "lxml/etree.pyx":3257
*
*
* def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3259
+/* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
values[1] = ((PyObject *)((PyObject *)Py_None));
values[2] = ((PyObject *)((PyObject*)__pyx_n_s_xml));
- /* "lxml/etree.pyx":3260
+ /* "lxml/etree.pyx":3271
*
* def tostring(element_or_tree, *, encoding=None, method="xml",
* xml_declaration=None, bint pretty_print=False, bint with_tail=True, # <<<<<<<<<<<<<<
*/
values[3] = ((PyObject *)((PyObject *)Py_None));
- /* "lxml/etree.pyx":3261
+ /* "lxml/etree.pyx":3272
* def tostring(element_or_tree, *, encoding=None, method="xml",
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None, # <<<<<<<<<<<<<<
values[6] = ((PyObject *)((PyObject *)Py_None));
values[7] = ((PyObject *)((PyObject *)Py_None));
- /* "lxml/etree.pyx":3262
+ /* "lxml/etree.pyx":3273
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
* bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tostring") < 0)) __PYX_ERR(0, 3259, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tostring") < 0)) __PYX_ERR(0, 3270, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
__pyx_v_method = values[2];
__pyx_v_xml_declaration = values[3];
if (values[4]) {
- __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3260, __pyx_L3_error)
+ __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3271, __pyx_L3_error)
} else {
- /* "lxml/etree.pyx":3260
+ /* "lxml/etree.pyx":3271
*
* def tostring(element_or_tree, *, encoding=None, method="xml",
* xml_declaration=None, bint pretty_print=False, bint with_tail=True, # <<<<<<<<<<<<<<
__pyx_v_pretty_print = ((int)((int)0));
}
if (values[5]) {
- __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3260, __pyx_L3_error)
+ __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3271, __pyx_L3_error)
} else {
__pyx_v_with_tail = ((int)((int)1));
}
__pyx_v_standalone = values[6];
__pyx_v_doctype = values[7];
if (values[8]) {
- __pyx_v_exclusive = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_exclusive == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3262, __pyx_L3_error)
+ __pyx_v_exclusive = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_exclusive == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3273, __pyx_L3_error)
} else {
- /* "lxml/etree.pyx":3262
+ /* "lxml/etree.pyx":3273
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
* bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None): # <<<<<<<<<<<<<<
__pyx_v_exclusive = ((int)((int)0));
}
if (values[9]) {
- __pyx_v_with_comments = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_with_comments == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3262, __pyx_L3_error)
+ __pyx_v_with_comments = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_with_comments == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3273, __pyx_L3_error)
} else {
__pyx_v_with_comments = ((int)((int)1));
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("tostring", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3259, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("tostring", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3270, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.tostring", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_30tostring(__pyx_self, __pyx_v_element_or_tree, __pyx_v_encoding, __pyx_v_method, __pyx_v_xml_declaration, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_standalone, __pyx_v_doctype, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes);
- /* "lxml/etree.pyx":3259
+ /* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("tostring", 0);
__Pyx_INCREF(__pyx_v_encoding);
- /* "lxml/etree.pyx":3308
+ /* "lxml/etree.pyx":3319
* cdef int is_standalone
* # C14N serialisation
* if method == 'c14n': # <<<<<<<<<<<<<<
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
*/
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_c14n, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3308, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_c14n, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3319, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3309
+ /* "lxml/etree.pyx":3320
* # C14N serialisation
* if method == 'c14n':
* if encoding is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3310
+ /* "lxml/etree.pyx":3321
* if method == 'c14n':
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N") # <<<<<<<<<<<<<<
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3310, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3321, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3310, __pyx_L1_error)
+ __PYX_ERR(0, 3321, __pyx_L1_error)
- /* "lxml/etree.pyx":3309
+ /* "lxml/etree.pyx":3320
* # C14N serialisation
* if method == 'c14n':
* if encoding is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3311
+ /* "lxml/etree.pyx":3322
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration: # <<<<<<<<<<<<<<
* raise ValueError("Cannot enable XML declaration in C14N")
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3311, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3322, __pyx_L1_error)
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3312
+ /* "lxml/etree.pyx":3323
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N") # <<<<<<<<<<<<<<
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments:
*/
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3312, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3312, __pyx_L1_error)
+ __PYX_ERR(0, 3323, __pyx_L1_error)
- /* "lxml/etree.pyx":3311
+ /* "lxml/etree.pyx":3322
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3313
+ /* "lxml/etree.pyx":3324
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes) # <<<<<<<<<<<<<<
* raise ValueError("Can only discard comments in C14N serialisation")
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __pyx_f_4lxml_5etree__tostringC14N(__pyx_v_element_or_tree, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3313, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__tostringC14N(__pyx_v_element_or_tree, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3308
+ /* "lxml/etree.pyx":3319
* cdef int is_standalone
* # C14N serialisation
* if method == 'c14n': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3314
+ /* "lxml/etree.pyx":3325
* raise ValueError("Cannot enable XML declaration in C14N")
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments: # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_v_with_comments != 0)) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3315
+ /* "lxml/etree.pyx":3326
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments:
* raise ValueError("Can only discard comments in C14N serialisation") # <<<<<<<<<<<<<<
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'):
* if xml_declaration:
*/
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3315, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3326, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3315, __pyx_L1_error)
+ __PYX_ERR(0, 3326, __pyx_L1_error)
- /* "lxml/etree.pyx":3314
+ /* "lxml/etree.pyx":3325
* raise ValueError("Cannot enable XML declaration in C14N")
* return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
* if not with_comments: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3316
+ /* "lxml/etree.pyx":3327
* if not with_comments:
* raise ValueError("Can only discard comments in C14N serialisation")
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'): # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_1;
goto __pyx_L8_bool_binop_done;
}
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3316, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3316, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_unicode, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3316, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_unicode, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3327, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_2 = __pyx_t_1;
__pyx_L8_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3317
+ /* "lxml/etree.pyx":3328
* raise ValueError("Can only discard comments in C14N serialisation")
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'):
* if xml_declaration: # <<<<<<<<<<<<<<
* raise ValueError, \
* u"Serialisation to unicode must not request an XML declaration"
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3317, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3328, __pyx_L1_error)
if (unlikely(__pyx_t_2)) {
- /* "lxml/etree.pyx":3318
+ /* "lxml/etree.pyx":3329
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'):
* if xml_declaration:
* raise ValueError, \ # <<<<<<<<<<<<<<
* write_declaration = 0
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Serialisation_to_unicode_must_no, 0, 0);
- __PYX_ERR(0, 3318, __pyx_L1_error)
+ __PYX_ERR(0, 3329, __pyx_L1_error)
- /* "lxml/etree.pyx":3317
+ /* "lxml/etree.pyx":3328
* raise ValueError("Can only discard comments in C14N serialisation")
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'):
* if xml_declaration: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3320
+ /* "lxml/etree.pyx":3331
* raise ValueError, \
* u"Serialisation to unicode must not request an XML declaration"
* write_declaration = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_write_declaration = 0;
- /* "lxml/etree.pyx":3321
+ /* "lxml/etree.pyx":3332
* u"Serialisation to unicode must not request an XML declaration"
* write_declaration = 0
* encoding = unicode # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
__Pyx_DECREF_SET(__pyx_v_encoding, ((PyObject *)(&PyUnicode_Type)));
- /* "lxml/etree.pyx":3316
+ /* "lxml/etree.pyx":3327
* if not with_comments:
* raise ValueError("Can only discard comments in C14N serialisation")
* if encoding is unicode or (encoding is not None and encoding.lower() == 'unicode'): # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "lxml/etree.pyx":3322
+ /* "lxml/etree.pyx":3333
* write_declaration = 0
* encoding = unicode
* elif xml_declaration is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3324
+ /* "lxml/etree.pyx":3335
* elif xml_declaration is None:
* # by default, write an XML declaration only for non-standard encodings
* write_declaration = encoding is not None and encoding.upper() not in \ # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_4;
goto __pyx_L12_bool_binop_done;
}
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s_upper); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_ASCII, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_ASCII, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3335, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_4 = __pyx_t_2;
goto __pyx_L14_bool_binop_done;
}
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u_UTF_8, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u_UTF_8, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3335, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_4 = __pyx_t_2;
goto __pyx_L14_bool_binop_done;
}
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_UTF8, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_UTF8, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3335, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_4 = __pyx_t_2;
goto __pyx_L14_bool_binop_done;
}
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u_US_ASCII, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3324, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_kp_u_US_ASCII, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 3335, __pyx_L1_error)
__pyx_t_4 = __pyx_t_2;
__pyx_L14_bool_binop_done:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_L12_bool_binop_done:;
__pyx_v_write_declaration = __pyx_t_1;
- /* "lxml/etree.pyx":3322
+ /* "lxml/etree.pyx":3333
* write_declaration = 0
* encoding = unicode
* elif xml_declaration is None: # <<<<<<<<<<<<<<
goto __pyx_L7;
}
- /* "lxml/etree.pyx":3327
+ /* "lxml/etree.pyx":3338
* (u'ASCII', u'UTF-8', u'UTF8', u'US-ASCII')
* else:
* write_declaration = xml_declaration # <<<<<<<<<<<<<<
* encoding = u'ASCII'
*/
/*else*/ {
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3327, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3338, __pyx_L1_error)
__pyx_v_write_declaration = __pyx_t_1;
}
__pyx_L7:;
- /* "lxml/etree.pyx":3328
+ /* "lxml/etree.pyx":3339
* else:
* write_declaration = xml_declaration
* if encoding is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3329
+ /* "lxml/etree.pyx":3340
* write_declaration = xml_declaration
* if encoding is None:
* encoding = u'ASCII' # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_u_ASCII);
__Pyx_DECREF_SET(__pyx_v_encoding, __pyx_n_u_ASCII);
- /* "lxml/etree.pyx":3328
+ /* "lxml/etree.pyx":3339
* else:
* write_declaration = xml_declaration
* if encoding is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3330
+ /* "lxml/etree.pyx":3341
* if encoding is None:
* encoding = u'ASCII'
* if standalone is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3331
+ /* "lxml/etree.pyx":3342
* encoding = u'ASCII'
* if standalone is None:
* is_standalone = -1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_standalone = -1;
- /* "lxml/etree.pyx":3330
+ /* "lxml/etree.pyx":3341
* if encoding is None:
* encoding = u'ASCII'
* if standalone is None: # <<<<<<<<<<<<<<
goto __pyx_L19;
}
- /* "lxml/etree.pyx":3332
+ /* "lxml/etree.pyx":3343
* if standalone is None:
* is_standalone = -1
* elif standalone: # <<<<<<<<<<<<<<
* write_declaration = 1
* is_standalone = 1
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3332, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3343, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/etree.pyx":3333
+ /* "lxml/etree.pyx":3344
* is_standalone = -1
* elif standalone:
* write_declaration = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_write_declaration = 1;
- /* "lxml/etree.pyx":3334
+ /* "lxml/etree.pyx":3345
* elif standalone:
* write_declaration = 1
* is_standalone = 1 # <<<<<<<<<<<<<<
*/
__pyx_v_is_standalone = 1;
- /* "lxml/etree.pyx":3332
+ /* "lxml/etree.pyx":3343
* if standalone is None:
* is_standalone = -1
* elif standalone: # <<<<<<<<<<<<<<
goto __pyx_L19;
}
- /* "lxml/etree.pyx":3336
+ /* "lxml/etree.pyx":3347
* is_standalone = 1
* else:
* write_declaration = 1 # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_write_declaration = 1;
- /* "lxml/etree.pyx":3337
+ /* "lxml/etree.pyx":3348
* else:
* write_declaration = 1
* is_standalone = 0 # <<<<<<<<<<<<<<
}
__pyx_L19:;
- /* "lxml/etree.pyx":3339
+ /* "lxml/etree.pyx":3350
* is_standalone = 0
*
* if isinstance(element_or_tree, _Element): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3340
+ /* "lxml/etree.pyx":3351
*
* if isinstance(element_or_tree, _Element):
* return _tostring(<_Element>element_or_tree, encoding, doctype, method, # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "lxml/etree.pyx":3342
+ /* "lxml/etree.pyx":3353
* return _tostring(<_Element>element_or_tree, encoding, doctype, method,
* write_declaration, 0, pretty_print, with_tail,
* is_standalone) # <<<<<<<<<<<<<<
* elif isinstance(element_or_tree, _ElementTree):
* return _tostring((<_ElementTree>element_or_tree)._context_node,
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 0, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3340, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 0, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3339
+ /* "lxml/etree.pyx":3350
* is_standalone = 0
*
* if isinstance(element_or_tree, _Element): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3343
+ /* "lxml/etree.pyx":3354
* write_declaration, 0, pretty_print, with_tail,
* is_standalone)
* elif isinstance(element_or_tree, _ElementTree): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (likely(__pyx_t_1)) {
- /* "lxml/etree.pyx":3344
+ /* "lxml/etree.pyx":3355
* is_standalone)
* elif isinstance(element_or_tree, _ElementTree):
* return _tostring((<_ElementTree>element_or_tree)._context_node, # <<<<<<<<<<<<<<
__pyx_t_3 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
__Pyx_INCREF(__pyx_t_3);
- /* "lxml/etree.pyx":3346
+ /* "lxml/etree.pyx":3357
* return _tostring((<_ElementTree>element_or_tree)._context_node,
* encoding, doctype, method, write_declaration, 1,
* pretty_print, with_tail, is_standalone) # <<<<<<<<<<<<<<
* else:
* raise TypeError, f"Type '{python._fqtypename(element_or_tree).decode('utf8')}' cannot be serialized."
*/
- __pyx_t_5 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_3), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3344, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_3), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3355, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3343
+ /* "lxml/etree.pyx":3354
* write_declaration, 0, pretty_print, with_tail,
* is_standalone)
* elif isinstance(element_or_tree, _ElementTree): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3348
+ /* "lxml/etree.pyx":3359
* pretty_print, with_tail, is_standalone)
* else:
* raise TypeError, f"Type '{python._fqtypename(element_or_tree).decode('utf8')}' cannot be serialized." # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3348, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = 0;
__pyx_t_8 = 127;
__Pyx_GIVEREF(__pyx_kp_u_Type);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Type);
__pyx_t_9 = _fqtypename(__pyx_v_element_or_tree);
- __pyx_t_3 = __Pyx_decode_c_string(__pyx_t_9, 0, strlen(__pyx_t_9), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3348, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_decode_c_string(__pyx_t_9, 0, strlen(__pyx_t_9), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_3);
__pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8;
__pyx_t_7 += 23;
__Pyx_GIVEREF(__pyx_kp_u_cannot_be_serialized);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u_cannot_be_serialized);
- __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3348, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_3, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3348, __pyx_L1_error)
+ __PYX_ERR(0, 3359, __pyx_L1_error)
}
- /* "lxml/etree.pyx":3259
+ /* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3352
+/* "lxml/etree.pyx":3363
*
*
* def tostringlist(element_or_tree, *args, **kwargs): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "tostringlist") < 0)) __PYX_ERR(0, 3352, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "tostringlist") < 0)) __PYX_ERR(0, 3363, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("tostringlist", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3352, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("tostringlist", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3363, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("tostringlist", 0);
- /* "lxml/etree.pyx":3361
+ /* "lxml/etree.pyx":3372
* single string wrapped in a list.
* """
* return [tostring(element_or_tree, *args, **kwargs)] # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tostring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3361, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_tostring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3361, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_element_or_tree);
__Pyx_GIVEREF(__pyx_v_element_or_tree);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_element_or_tree);
- __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3361, __pyx_L1_error)
+ __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3361, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3361, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3352
+ /* "lxml/etree.pyx":3363
*
*
* def tostringlist(element_or_tree, *args, **kwargs): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3364
+/* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
PyObject* values[5] = {0,0,0,0,0};
values[1] = ((PyObject *)((PyObject*)__pyx_n_u_xml));
- /* "lxml/etree.pyx":3365
+ /* "lxml/etree.pyx":3376
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
* bint with_tail=True, doctype=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tounicode") < 0)) __PYX_ERR(0, 3364, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tounicode") < 0)) __PYX_ERR(0, 3375, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
__pyx_v_element_or_tree = values[0];
__pyx_v_method = values[1];
if (values[2]) {
- __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3364, __pyx_L3_error)
+ __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3375, __pyx_L3_error)
} else {
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
__pyx_v_pretty_print = ((int)((int)0));
}
if (values[3]) {
- __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3365, __pyx_L3_error)
+ __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3376, __pyx_L3_error)
} else {
- /* "lxml/etree.pyx":3365
+ /* "lxml/etree.pyx":3376
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
* bint with_tail=True, doctype=None): # <<<<<<<<<<<<<<
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("tounicode", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3364, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("tounicode", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3375, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.tounicode", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_5etree_34tounicode(__pyx_self, __pyx_v_element_or_tree, __pyx_v_method, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_doctype);
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
Py_UCS4 __pyx_t_6;
__Pyx_RefNannySetupContext("tounicode", 0);
- /* "lxml/etree.pyx":3387
+ /* "lxml/etree.pyx":3398
* on the tail text of children, which will always be serialised.
* """
* if isinstance(element_or_tree, _Element): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/etree.pyx":3388
+ /* "lxml/etree.pyx":3399
* """
* if isinstance(element_or_tree, _Element):
* return _tostring(<_Element>element_or_tree, unicode, doctype, method, # <<<<<<<<<<<<<<
*/
__Pyx_XDECREF(__pyx_r);
- /* "lxml/etree.pyx":3389
+ /* "lxml/etree.pyx":3400
* if isinstance(element_or_tree, _Element):
* return _tostring(<_Element>element_or_tree, unicode, doctype, method,
* 0, 0, pretty_print, with_tail, -1) # <<<<<<<<<<<<<<
* elif isinstance(element_or_tree, _ElementTree):
* return _tostring((<_ElementTree>element_or_tree)._context_node,
*/
- __pyx_t_3 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), ((PyObject *)(&PyUnicode_Type)), __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3388, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), ((PyObject *)(&PyUnicode_Type)), __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3399, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3387
+ /* "lxml/etree.pyx":3398
* on the tail text of children, which will always be serialised.
* """
* if isinstance(element_or_tree, _Element): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3390
+ /* "lxml/etree.pyx":3401
* return _tostring(<_Element>element_or_tree, unicode, doctype, method,
* 0, 0, pretty_print, with_tail, -1)
* elif isinstance(element_or_tree, _ElementTree): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (likely(__pyx_t_1)) {
- /* "lxml/etree.pyx":3391
+ /* "lxml/etree.pyx":3402
* 0, 0, pretty_print, with_tail, -1)
* elif isinstance(element_or_tree, _ElementTree):
* return _tostring((<_ElementTree>element_or_tree)._context_node, # <<<<<<<<<<<<<<
__pyx_t_3 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
__Pyx_INCREF(__pyx_t_3);
- /* "lxml/etree.pyx":3393
+ /* "lxml/etree.pyx":3404
* return _tostring((<_ElementTree>element_or_tree)._context_node,
* unicode, doctype, method, 0, 1, pretty_print,
* with_tail, -1) # <<<<<<<<<<<<<<
* else:
* raise TypeError, f"Type '{type(element_or_tree)}' cannot be serialized."
*/
- __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_3), ((PyObject *)(&PyUnicode_Type)), __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3391, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_3), ((PyObject *)(&PyUnicode_Type)), __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3402, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3390
+ /* "lxml/etree.pyx":3401
* return _tostring(<_Element>element_or_tree, unicode, doctype, method,
* 0, 0, pretty_print, with_tail, -1)
* elif isinstance(element_or_tree, _ElementTree): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3395
+ /* "lxml/etree.pyx":3406
* with_tail, -1)
* else:
* raise TypeError, f"Type '{type(element_or_tree)}' cannot be serialized." # <<<<<<<<<<<<<<
*
*/
/*else*/ {
- __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3395, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3406, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = 0;
__pyx_t_6 = 127;
__pyx_t_5 += 6;
__Pyx_GIVEREF(__pyx_kp_u_Type);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_Type);
- __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_element_or_tree)), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3395, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_element_or_tree)), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3406, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_6;
__pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
__pyx_t_5 += 23;
__Pyx_GIVEREF(__pyx_kp_u_cannot_be_serialized);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_cannot_be_serialized);
- __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3395, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3406, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_3, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 3395, __pyx_L1_error)
+ __PYX_ERR(0, 3406, __pyx_L1_error)
}
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3398
+/* "lxml/etree.pyx":3409
*
*
* def parse(source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 3398, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 3409, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3398, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3409, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3398, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3409, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_36parse(__pyx_self, __pyx_v_source, __pyx_v_parser, __pyx_v_base_url);
/* function exit code */
int __pyx_t_8;
__Pyx_RefNannySetupContext("parse", 0);
- /* "lxml/etree.pyx":3423
+ /* "lxml/etree.pyx":3434
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "lxml/etree.pyx":3424
+ /* "lxml/etree.pyx":3435
* cdef _Document doc
* try:
* doc = _parseDocument(source, parser, base_url) # <<<<<<<<<<<<<<
* return _elementTreeFactory(doc, None)
* except _TargetParserResult as result_container:
*/
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3424, __pyx_L3_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3435, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/etree.pyx":3425
+ /* "lxml/etree.pyx":3436
* try:
* doc = _parseDocument(source, parser, base_url)
* return _elementTreeFactory(doc, None) # <<<<<<<<<<<<<<
* return result_container.result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3425, __pyx_L3_error)
+ __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3436, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L7_try_return;
- /* "lxml/etree.pyx":3423
+ /* "lxml/etree.pyx":3434
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/etree.pyx":3426
+ /* "lxml/etree.pyx":3437
* doc = _parseDocument(source, parser, base_url)
* return _elementTreeFactory(doc, None)
* except _TargetParserResult as result_container: # <<<<<<<<<<<<<<
*
*/
__Pyx_ErrFetch(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
- __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3426, __pyx_L5_except_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_TargetParserResult); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3437, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_4, __pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
if (__pyx_t_8) {
__Pyx_AddTraceback("lxml.etree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 3426, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 3437, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__pyx_v_result_container = __pyx_t_5;
- /* "lxml/etree.pyx":3427
+ /* "lxml/etree.pyx":3438
* return _elementTreeFactory(doc, None)
* except _TargetParserResult as result_container:
* return result_container.result # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3427, __pyx_L5_except_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3438, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_r = __pyx_t_7;
__pyx_t_7 = 0;
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "lxml/etree.pyx":3423
+ /* "lxml/etree.pyx":3434
* """
* cdef _Document doc
* try: # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/etree.pyx":3398
+ /* "lxml/etree.pyx":3409
*
*
* def parse(source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3430
+/* "lxml/etree.pyx":3441
*
*
* def adopt_external_document(capsule, _BaseParser parser=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adopt_external_document") < 0)) __PYX_ERR(0, 3430, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adopt_external_document") < 0)) __PYX_ERR(0, 3441, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("adopt_external_document", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3430, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("adopt_external_document", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3441, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree.adopt_external_document", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3430, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) __PYX_ERR(0, 3441, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_5etree_38adopt_external_document(__pyx_self, __pyx_v_capsule, __pyx_v_parser);
/* function exit code */
struct __pyx_opt_args_4lxml_5etree__adoptForeignDoc __pyx_t_3;
__Pyx_RefNannySetupContext("adopt_external_document", 0);
- /* "lxml/etree.pyx":3462
+ /* "lxml/etree.pyx":3473
* """
* cdef xmlDoc* c_doc
* cdef bint is_owned = False # <<<<<<<<<<<<<<
*/
__pyx_v_is_owned = 0;
- /* "lxml/etree.pyx":3463
+ /* "lxml/etree.pyx":3474
* cdef xmlDoc* c_doc
* cdef bint is_owned = False
* c_doc = <xmlDoc*> python.lxml_unpack_xmldoc_capsule(capsule, &is_owned) # <<<<<<<<<<<<<<
* doc = _adoptForeignDoc(c_doc, parser, is_owned)
* return _elementTreeFactory(doc, None)
*/
- __pyx_t_1 = lxml_unpack_xmldoc_capsule(__pyx_v_capsule, (&__pyx_v_is_owned)); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 3463, __pyx_L1_error)
+ __pyx_t_1 = lxml_unpack_xmldoc_capsule(__pyx_v_capsule, (&__pyx_v_is_owned)); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 3474, __pyx_L1_error)
__pyx_v_c_doc = ((xmlDoc *)__pyx_t_1);
- /* "lxml/etree.pyx":3464
+ /* "lxml/etree.pyx":3475
* cdef bint is_owned = False
* c_doc = <xmlDoc*> python.lxml_unpack_xmldoc_capsule(capsule, &is_owned)
* doc = _adoptForeignDoc(c_doc, parser, is_owned) # <<<<<<<<<<<<<<
__pyx_t_3.__pyx_n = 2;
__pyx_t_3.parser = __pyx_v_parser;
__pyx_t_3.is_owned = __pyx_v_is_owned;
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__adoptForeignDoc(__pyx_v_c_doc, &__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3464, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__adoptForeignDoc(__pyx_v_c_doc, &__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/etree.pyx":3465
+ /* "lxml/etree.pyx":3476
* c_doc = <xmlDoc*> python.lxml_unpack_xmldoc_capsule(capsule, &is_owned)
* doc = _adoptForeignDoc(c_doc, parser, is_owned)
* return _elementTreeFactory(doc, None) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3465, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3476, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3430
+ /* "lxml/etree.pyx":3441
*
*
* def adopt_external_document(capsule, _BaseParser parser=None): # <<<<<<<<<<<<<<
* """
* self._free_after_use = 1 # <<<<<<<<<<<<<<
*
- * property tag:
+ * @property
*/
__pyx_v_self->_free_after_use = 1;
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/readonlytree.pxi":32
- * u"""Element tag
+/* "src/lxml/readonlytree.pxi":30
+ *
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * """Element tag
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":33
+ * """Element tag
* """
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _namespacedName(self._c_node)
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _namespacedName(self._c_node)
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_assertNode(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 33, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":34
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
- * return _namespacedName(self._c_node)
- * elif self._c_node.type == tree.XML_PI_NODE:
+ * """
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * return _namespacedName(self._c_node)
+ * elif self._c_node.type == tree.XML_PI_NODE:
*/
switch (__pyx_v_self->_c_node->type) {
case XML_ELEMENT_NODE:
/* "src/lxml/readonlytree.pxi":35
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _namespacedName(self._c_node) # <<<<<<<<<<<<<<
- * elif self._c_node.type == tree.XML_PI_NODE:
- * return ProcessingInstruction
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _namespacedName(self._c_node) # <<<<<<<<<<<<<<
+ * elif self._c_node.type == tree.XML_PI_NODE:
+ * return ProcessingInstruction
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_self->_c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 35, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":34
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
- * return _namespacedName(self._c_node)
- * elif self._c_node.type == tree.XML_PI_NODE:
+ * """
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * return _namespacedName(self._c_node)
+ * elif self._c_node.type == tree.XML_PI_NODE:
*/
break;
case XML_PI_NODE:
/* "src/lxml/readonlytree.pxi":37
- * return _namespacedName(self._c_node)
- * elif self._c_node.type == tree.XML_PI_NODE:
- * return ProcessingInstruction # <<<<<<<<<<<<<<
- * elif self._c_node.type == tree.XML_COMMENT_NODE:
- * return Comment
+ * return _namespacedName(self._c_node)
+ * elif self._c_node.type == tree.XML_PI_NODE:
+ * return ProcessingInstruction # <<<<<<<<<<<<<<
+ * elif self._c_node.type == tree.XML_COMMENT_NODE:
+ * return Comment
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 37, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":36
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _namespacedName(self._c_node)
- * elif self._c_node.type == tree.XML_PI_NODE: # <<<<<<<<<<<<<<
- * return ProcessingInstruction
- * elif self._c_node.type == tree.XML_COMMENT_NODE:
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _namespacedName(self._c_node)
+ * elif self._c_node.type == tree.XML_PI_NODE: # <<<<<<<<<<<<<<
+ * return ProcessingInstruction
+ * elif self._c_node.type == tree.XML_COMMENT_NODE:
*/
break;
case XML_COMMENT_NODE:
/* "src/lxml/readonlytree.pxi":39
- * return ProcessingInstruction
- * elif self._c_node.type == tree.XML_COMMENT_NODE:
- * return Comment # <<<<<<<<<<<<<<
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- * return Entity
+ * return ProcessingInstruction
+ * elif self._c_node.type == tree.XML_COMMENT_NODE:
+ * return Comment # <<<<<<<<<<<<<<
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ * return Entity
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Comment); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 39, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":38
- * elif self._c_node.type == tree.XML_PI_NODE:
- * return ProcessingInstruction
- * elif self._c_node.type == tree.XML_COMMENT_NODE: # <<<<<<<<<<<<<<
- * return Comment
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ * elif self._c_node.type == tree.XML_PI_NODE:
+ * return ProcessingInstruction
+ * elif self._c_node.type == tree.XML_COMMENT_NODE: # <<<<<<<<<<<<<<
+ * return Comment
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
*/
break;
case XML_ENTITY_REF_NODE:
/* "src/lxml/readonlytree.pxi":41
- * return Comment
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- * return Entity # <<<<<<<<<<<<<<
- * else:
- * self._raise_unsupported_type()
+ * return Comment
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ * return Entity # <<<<<<<<<<<<<<
+ * else:
+ * self._raise_unsupported_type()
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Entity); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 41, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":40
- * elif self._c_node.type == tree.XML_COMMENT_NODE:
- * return Comment
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE: # <<<<<<<<<<<<<<
- * return Entity
- * else:
+ * elif self._c_node.type == tree.XML_COMMENT_NODE:
+ * return Comment
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE: # <<<<<<<<<<<<<<
+ * return Entity
+ * else:
*/
break;
default:
/* "src/lxml/readonlytree.pxi":43
- * return Entity
- * else:
- * self._raise_unsupported_type() # <<<<<<<<<<<<<<
+ * return Entity
+ * else:
+ * self._raise_unsupported_type() # <<<<<<<<<<<<<<
*
- * property text:
+ * @property
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_raise_unsupported_type(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 43, __pyx_L1_error)
break;
}
- /* "src/lxml/readonlytree.pxi":32
- * u"""Element tag
+ /* "src/lxml/readonlytree.pxi":30
+ *
+ * @property
+ * def tag(self): # <<<<<<<<<<<<<<
+ * """Element tag
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/readonlytree.pxi":49
+/* "src/lxml/readonlytree.pxi":46
+ *
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * """Text before the first subelement. This is either a string or
* the value None, if there was no text.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":50
+ * the value None, if there was no text.
* """
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _collectText(self._c_node.children)
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _collectText(self._c_node.children)
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_assertNode(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 50, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":51
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
- * return _collectText(self._c_node.children)
- * elif self._c_node.type in (tree.XML_PI_NODE,
+ * """
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * return _collectText(self._c_node.children)
+ * elif self._c_node.type in (tree.XML_PI_NODE,
*/
switch (__pyx_v_self->_c_node->type) {
case XML_ELEMENT_NODE:
/* "src/lxml/readonlytree.pxi":52
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _collectText(self._c_node.children) # <<<<<<<<<<<<<<
- * elif self._c_node.type in (tree.XML_PI_NODE,
- * tree.XML_COMMENT_NODE):
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _collectText(self._c_node.children) # <<<<<<<<<<<<<<
+ * elif self._c_node.type in (tree.XML_PI_NODE,
+ * tree.XML_COMMENT_NODE):
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->children); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 52, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":51
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
- * return _collectText(self._c_node.children)
- * elif self._c_node.type in (tree.XML_PI_NODE,
+ * """
+ * self._assertNode()
+ * if self._c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
+ * return _collectText(self._c_node.children)
+ * elif self._c_node.type in (tree.XML_PI_NODE,
*/
break;
case XML_PI_NODE:
/* "src/lxml/readonlytree.pxi":53
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _collectText(self._c_node.children)
- * elif self._c_node.type in (tree.XML_PI_NODE, # <<<<<<<<<<<<<<
- * tree.XML_COMMENT_NODE):
- * if self._c_node.content is NULL:
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _collectText(self._c_node.children)
+ * elif self._c_node.type in (tree.XML_PI_NODE, # <<<<<<<<<<<<<<
+ * tree.XML_COMMENT_NODE):
+ * if self._c_node.content is NULL:
*/
case XML_COMMENT_NODE:
/* "src/lxml/readonlytree.pxi":55
- * elif self._c_node.type in (tree.XML_PI_NODE,
- * tree.XML_COMMENT_NODE):
- * if self._c_node.content is NULL: # <<<<<<<<<<<<<<
- * return ''
- * else:
+ * elif self._c_node.type in (tree.XML_PI_NODE,
+ * tree.XML_COMMENT_NODE):
+ * if self._c_node.content is NULL: # <<<<<<<<<<<<<<
+ * return ''
+ * else:
*/
__pyx_t_3 = ((__pyx_v_self->_c_node->content == NULL) != 0);
if (__pyx_t_3) {
/* "src/lxml/readonlytree.pxi":56
- * tree.XML_COMMENT_NODE):
- * if self._c_node.content is NULL:
- * return '' # <<<<<<<<<<<<<<
- * else:
- * return funicode(self._c_node.content)
+ * tree.XML_COMMENT_NODE):
+ * if self._c_node.content is NULL:
+ * return '' # <<<<<<<<<<<<<<
+ * else:
+ * return funicode(self._c_node.content)
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_kp_s__11);
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":55
- * elif self._c_node.type in (tree.XML_PI_NODE,
- * tree.XML_COMMENT_NODE):
- * if self._c_node.content is NULL: # <<<<<<<<<<<<<<
- * return ''
- * else:
+ * elif self._c_node.type in (tree.XML_PI_NODE,
+ * tree.XML_COMMENT_NODE):
+ * if self._c_node.content is NULL: # <<<<<<<<<<<<<<
+ * return ''
+ * else:
*/
}
/* "src/lxml/readonlytree.pxi":58
- * return ''
- * else:
- * return funicode(self._c_node.content) # <<<<<<<<<<<<<<
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- * return f'&{funicode(self._c_node.name)};'
+ * return ''
+ * else:
+ * return funicode(self._c_node.content) # <<<<<<<<<<<<<<
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ * return f'&{funicode(self._c_node.name)};'
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
}
/* "src/lxml/readonlytree.pxi":53
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
- * return _collectText(self._c_node.children)
- * elif self._c_node.type in (tree.XML_PI_NODE, # <<<<<<<<<<<<<<
- * tree.XML_COMMENT_NODE):
- * if self._c_node.content is NULL:
+ * if self._c_node.type == tree.XML_ELEMENT_NODE:
+ * return _collectText(self._c_node.children)
+ * elif self._c_node.type in (tree.XML_PI_NODE, # <<<<<<<<<<<<<<
+ * tree.XML_COMMENT_NODE):
+ * if self._c_node.content is NULL:
*/
break;
case XML_ENTITY_REF_NODE:
/* "src/lxml/readonlytree.pxi":60
- * return funicode(self._c_node.content)
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
- * else:
- * self._raise_unsupported_type()
+ * return funicode(self._c_node.content)
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
+ * else:
+ * self._raise_unsupported_type()
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 60, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":59
- * else:
- * return funicode(self._c_node.content)
- * elif self._c_node.type == tree.XML_ENTITY_REF_NODE: # <<<<<<<<<<<<<<
- * return f'&{funicode(self._c_node.name)};'
* else:
+ * return funicode(self._c_node.content)
+ * elif self._c_node.type == tree.XML_ENTITY_REF_NODE: # <<<<<<<<<<<<<<
+ * return f'&{funicode(self._c_node.name)};'
+ * else:
*/
break;
default:
/* "src/lxml/readonlytree.pxi":62
- * return f'&{funicode(self._c_node.name)};'
- * else:
- * self._raise_unsupported_type() # <<<<<<<<<<<<<<
+ * return f'&{funicode(self._c_node.name)};'
+ * else:
+ * self._raise_unsupported_type() # <<<<<<<<<<<<<<
*
- * property tail:
+ * @property
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_raise_unsupported_type(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 62, __pyx_L1_error)
break;
}
- /* "src/lxml/readonlytree.pxi":49
+ /* "src/lxml/readonlytree.pxi":46
+ *
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * """Text before the first subelement. This is either a string or
* the value None, if there was no text.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.type == tree.XML_ELEMENT_NODE:
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/readonlytree.pxi":69
- * there was no text.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return _collectText(self._c_node.next)
+/* "src/lxml/readonlytree.pxi":65
+ *
+ * @property
+ * def tail(self): # <<<<<<<<<<<<<<
+ * """Text after this element's end tag, but before the next sibling
+ * element's start tag. This is either a string or the value None, if
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":70
+ * there was no text.
* """
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * return _collectText(self._c_node.next)
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * return _collectText(self._c_node.next)
*
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_assertNode(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 70, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":71
- * def __get__(self):
- * self._assertNode()
- * return _collectText(self._c_node.next) # <<<<<<<<<<<<<<
+ * """
+ * self._assertNode()
+ * return _collectText(self._c_node.next) # <<<<<<<<<<<<<<
*
- * property sourceline:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->next); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 71, __pyx_L1_error)
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/readonlytree.pxi":69
- * there was no text.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return _collectText(self._c_node.next)
+ /* "src/lxml/readonlytree.pxi":65
+ *
+ * @property
+ * def tail(self): # <<<<<<<<<<<<<<
+ * """Text after this element's end tag, but before the next sibling
+ * element's start tag. This is either a string or the value None, if
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/readonlytree.pxi":76
- * u"""Original line number as found by the parser or None if unknown.
+/* "src/lxml/readonlytree.pxi":74
+ *
+ * @property
+ * def sourceline(self): # <<<<<<<<<<<<<<
+ * """Original line number as found by the parser or None if unknown.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef long line
- * self._assertNode()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":78
- * def __get__(self):
- * cdef long line
- * self._assertNode() # <<<<<<<<<<<<<<
- * line = tree.xmlGetLineNo(self._c_node)
- * if line > 0:
+ * """
+ * cdef long line
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * line = tree.xmlGetLineNo(self._c_node)
+ * if line > 0:
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self->__pyx_vtab)->_assertNode(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 78, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":79
- * cdef long line
- * self._assertNode()
- * line = tree.xmlGetLineNo(self._c_node) # <<<<<<<<<<<<<<
- * if line > 0:
- * return line
+ * cdef long line
+ * self._assertNode()
+ * line = tree.xmlGetLineNo(self._c_node) # <<<<<<<<<<<<<<
+ * if line > 0:
+ * return line
*/
__pyx_v_line = xmlGetLineNo(__pyx_v_self->_c_node);
/* "src/lxml/readonlytree.pxi":80
- * self._assertNode()
- * line = tree.xmlGetLineNo(self._c_node)
- * if line > 0: # <<<<<<<<<<<<<<
- * return line
- * else:
+ * self._assertNode()
+ * line = tree.xmlGetLineNo(self._c_node)
+ * if line > 0: # <<<<<<<<<<<<<<
+ * return line
+ * else:
*/
__pyx_t_2 = ((__pyx_v_line > 0) != 0);
if (__pyx_t_2) {
/* "src/lxml/readonlytree.pxi":81
- * line = tree.xmlGetLineNo(self._c_node)
- * if line > 0:
- * return line # <<<<<<<<<<<<<<
- * else:
- * return None
+ * line = tree.xmlGetLineNo(self._c_node)
+ * if line > 0:
+ * return line # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_line); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 81, __pyx_L1_error)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":80
- * self._assertNode()
- * line = tree.xmlGetLineNo(self._c_node)
- * if line > 0: # <<<<<<<<<<<<<<
- * return line
- * else:
+ * self._assertNode()
+ * line = tree.xmlGetLineNo(self._c_node)
+ * if line > 0: # <<<<<<<<<<<<<<
+ * return line
+ * else:
*/
}
/* "src/lxml/readonlytree.pxi":83
- * return line
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return line
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
* def __repr__(self):
*/
goto __pyx_L0;
}
- /* "src/lxml/readonlytree.pxi":76
- * u"""Original line number as found by the parser or None if unknown.
+ /* "src/lxml/readonlytree.pxi":74
+ *
+ * @property
+ * def sourceline(self): # <<<<<<<<<<<<<<
+ * """Original line number as found by the parser or None if unknown.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef long line
- * self._assertNode()
*/
/* function exit code */
}
/* "src/lxml/readonlytree.pxi":85
- * return None
+ * return None
*
* def __repr__(self): # <<<<<<<<<<<<<<
* self._assertNode()
}
/* "src/lxml/readonlytree.pxi":85
- * return None
+ * return None
*
* def __repr__(self): # <<<<<<<<<<<<<<
* self._assertNode()
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
}
/* "src/lxml/readonlytree.pxi":251
- * u"A read-only proxy for processing instructions (for internal use only!)"
- * property target:
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return funicode(self._c_node.name)
+ * """A read-only proxy for processing instructions (for internal use only!)"""
+ * @property
+ * def target(self): # <<<<<<<<<<<<<<
+ * self._assertNode()
+ * return funicode(self._c_node.name)
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":252
- * property target:
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * return funicode(self._c_node.name)
+ * @property
+ * def target(self):
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.name)
*
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._assertNode(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 252, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":253
- * def __get__(self):
- * self._assertNode()
- * return funicode(self._c_node.name) # <<<<<<<<<<<<<<
+ * def target(self):
+ * self._assertNode()
+ * return funicode(self._c_node.name) # <<<<<<<<<<<<<<
*
* @cython.final
*/
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":251
- * u"A read-only proxy for processing instructions (for internal use only!)"
- * property target:
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return funicode(self._c_node.name)
+ * """A read-only proxy for processing instructions (for internal use only!)"""
+ * @property
+ * def target(self): # <<<<<<<<<<<<<<
+ * self._assertNode()
+ * return funicode(self._c_node.name)
*/
/* function exit code */
}
/* "src/lxml/readonlytree.pxi":260
- * u"A read-only proxy for entity references (for internal use only!)"
+ * """A read-only proxy for entity references (for internal use only!)"""
* property name:
* def __get__(self): # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":260
- * u"A read-only proxy for entity references (for internal use only!)"
+ * """A read-only proxy for entity references (for internal use only!)"""
* property name:
* def __get__(self): # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
* raise ValueError(f"Invalid entity name '{value}'")
* tree.xmlNodeSetName(self._c_node, _xcstr(value_utf)) # <<<<<<<<<<<<<<
*
- * property text:
+ * @property
*/
xmlNodeSetName(__pyx_v_self->__pyx_base._c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value_utf));
/* "src/lxml/readonlytree.pxi":270
*
- * property text:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return f'&{funicode(self._c_node.name)};'
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * return f'&{funicode(self._c_node.name)};'
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":271
- * property text:
- * def __get__(self):
- * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
+ * @property
+ * def text(self):
+ * return f'&{funicode(self._c_node.name)};' # <<<<<<<<<<<<<<
*
*
*/
/* "src/lxml/readonlytree.pxi":270
*
- * property text:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return f'&{funicode(self._c_node.name)};'
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * return f'&{funicode(self._c_node.name)};'
*
*/
/* "src/lxml/readonlytree.pxi":279
*
- * property attrib:
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return dict(_collectAttributes(self._c_node, 3))
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * self._assertNode()
+ * return dict(_collectAttributes(self._c_node, 3))
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":280
- * property attrib:
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * return dict(_collectAttributes(self._c_node, 3))
+ * @property
+ * def attrib(self):
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * return dict(_collectAttributes(self._c_node, 3))
*
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyElementProxy *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._assertNode(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 280, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":281
- * def __get__(self):
- * self._assertNode()
- * return dict(_collectAttributes(self._c_node, 3)) # <<<<<<<<<<<<<<
+ * def attrib(self):
+ * self._assertNode()
+ * return dict(_collectAttributes(self._c_node, 3)) # <<<<<<<<<<<<<<
*
- * property prefix:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->__pyx_base._c_node, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 281, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":279
*
- * property attrib:
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * return dict(_collectAttributes(self._c_node, 3))
+ * @property
+ * def attrib(self): # <<<<<<<<<<<<<<
+ * self._assertNode()
+ * return dict(_collectAttributes(self._c_node, 3))
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/readonlytree.pxi":286
- * u"""Namespace prefix or None.
+/* "src/lxml/readonlytree.pxi":284
+ *
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix or None.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.ns is not NULL:
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/readonlytree.pxi":287
+ * """Namespace prefix or None.
* """
- * def __get__(self):
- * self._assertNode() # <<<<<<<<<<<<<<
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL:
+ * self._assertNode() # <<<<<<<<<<<<<<
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL:
*/
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyElementProxy *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._assertNode(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 287, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":288
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
+ * """
+ * self._assertNode()
+ * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
*/
__pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->ns != NULL) != 0);
if (__pyx_t_2) {
/* "src/lxml/readonlytree.pxi":289
- * self._assertNode()
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
- * return funicode(self._c_node.ns.prefix)
- * return None
+ * self._assertNode()
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.ns.prefix)
+ * return None
*/
__pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->ns->prefix != NULL) != 0);
if (__pyx_t_2) {
/* "src/lxml/readonlytree.pxi":290
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix) # <<<<<<<<<<<<<<
- * return None
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix) # <<<<<<<<<<<<<<
+ * return None
*
*/
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":289
- * self._assertNode()
- * if self._c_node.ns is not NULL:
- * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
- * return funicode(self._c_node.ns.prefix)
- * return None
+ * self._assertNode()
+ * if self._c_node.ns is not NULL:
+ * if self._c_node.ns.prefix is not NULL: # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.ns.prefix)
+ * return None
*/
}
/* "src/lxml/readonlytree.pxi":288
- * def __get__(self):
- * self._assertNode()
- * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
+ * """
+ * self._assertNode()
+ * if self._c_node.ns is not NULL: # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
*/
}
/* "src/lxml/readonlytree.pxi":291
- * if self._c_node.ns.prefix is not NULL:
- * return funicode(self._c_node.ns.prefix)
- * return None # <<<<<<<<<<<<<<
+ * if self._c_node.ns.prefix is not NULL:
+ * return funicode(self._c_node.ns.prefix)
+ * return None # <<<<<<<<<<<<<<
*
* def get(self, key, default=None):
*/
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "src/lxml/readonlytree.pxi":286
- * u"""Namespace prefix or None.
+ /* "src/lxml/readonlytree.pxi":284
+ *
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * """Namespace prefix or None.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * self._assertNode()
- * if self._c_node.ns is not NULL:
*/
/* function exit code */
}
/* "src/lxml/readonlytree.pxi":293
- * return None
+ * return None
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""Gets an element attribute.
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":293
- * return None
+ * return None
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""Gets an element attribute.
}
/* "src/lxml/readonlytree.pxi":459
- * u"A read-only proxy for entity references (for internal use only!)"
+ * "A read-only proxy for entity references (for internal use only!)"
* property name:
* def __get__(self): # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
goto __pyx_L0;
/* "src/lxml/readonlytree.pxi":459
- * u"A read-only proxy for entity references (for internal use only!)"
+ * "A read-only proxy for entity references (for internal use only!)"
* property name:
* def __get__(self): # <<<<<<<<<<<<<<
* return funicode(self._c_node.name)
* _forwardParserError(<xmlparser.xmlParserCtxt*>c_context, error)
*
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename, # <<<<<<<<<<<<<<
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \
*/
/* "src/lxml/parser.pxi":624
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename,
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \ # <<<<<<<<<<<<<<
* ctxt.lastError.domain == xmlerror.XML_FROM_IO:
* if isinstance(filename, bytes):
}
/* "src/lxml/parser.pxi":625
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \
* ctxt.lastError.domain == xmlerror.XML_FROM_IO: # <<<<<<<<<<<<<<
* if isinstance(filename, bytes):
/* "src/lxml/parser.pxi":624
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename,
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \ # <<<<<<<<<<<<<<
* ctxt.lastError.domain == xmlerror.XML_FROM_IO:
* if isinstance(filename, bytes):
/* "src/lxml/parser.pxi":624
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename,
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \ # <<<<<<<<<<<<<<
* ctxt.lastError.domain == xmlerror.XML_FROM_IO:
* if isinstance(filename, bytes):
* _forwardParserError(<xmlparser.xmlParserCtxt*>c_context, error)
*
* cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename, # <<<<<<<<<<<<<<
- * _ErrorLog error_log) except 0:
+ * _ErrorLog error_log) except -1:
* if filename is not None and \
*/
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_AddTraceback("lxml.etree._raiseParseError", __pyx_clineno, __pyx_lineno, __pyx_filename);
- __pyx_r = 0;
+ __pyx_r = -1;
__Pyx_XDECREF(__pyx_v_message);
__Pyx_XDECREF(__pyx_v_filename);
__Pyx_RefNannyFinishContext();
*/
__pyx_t_5 = ((PyObject *)__pyx_v_context->_error_log);
__Pyx_INCREF(__pyx_t_5);
- __pyx_t_11 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_5)); if (unlikely(__pyx_t_11 == ((int)0))) __PYX_ERR(2, 711, __pyx_L1_error)
+ __pyx_t_11 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_5)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
/* "src/lxml/parser.pxi":710
* if result.URL is NULL and filename is not None:
*/
/*else*/ {
- __pyx_t_11 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None)); if (unlikely(__pyx_t_11 == ((int)0))) __PYX_ERR(2, 713, __pyx_L1_error)
+ __pyx_t_11 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None)); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 713, __pyx_L1_error)
}
__pyx_L37:;
* c_ctxt.sax.startDocument = _initSaxDocument
* return c_ctxt # <<<<<<<<<<<<<<
*
- * property error_log:
+ * @property
*/
__pyx_r = __pyx_v_c_ctxt;
goto __pyx_L0;
return __pyx_r;
}
-/* "src/lxml/parser.pxi":946
- * u"""The error log of the last parser run.
+/* "src/lxml/parser.pxi":944
+ *
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last parser run.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef _ParserContext context
- * context = self._getParserContext()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/parser.pxi":948
- * def __get__(self):
- * cdef _ParserContext context
- * context = self._getParserContext() # <<<<<<<<<<<<<<
- * return context._error_log.copy()
+ * """
+ * cdef _ParserContext context
+ * context = self._getParserContext() # <<<<<<<<<<<<<<
+ * return context._error_log.copy()
*
*/
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_getParserContext(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 948, __pyx_L1_error)
__pyx_t_1 = 0;
/* "src/lxml/parser.pxi":949
- * cdef _ParserContext context
- * context = self._getParserContext()
- * return context._error_log.copy() # <<<<<<<<<<<<<<
+ * cdef _ParserContext context
+ * context = self._getParserContext()
+ * return context._error_log.copy() # <<<<<<<<<<<<<<
*
- * property resolvers:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_context->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_context->_error_log), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 949, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/parser.pxi":946
- * u"""The error log of the last parser run.
+ /* "src/lxml/parser.pxi":944
+ *
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last parser run.
* """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef _ParserContext context
- * context = self._getParserContext()
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/parser.pxi":953
- * property resolvers:
- * u"The custom resolver registry of this parser."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._resolvers
+/* "src/lxml/parser.pxi":952
*
+ * @property
+ * def resolvers(self): # <<<<<<<<<<<<<<
+ * """The custom resolver registry of this parser."""
+ * return self._resolvers
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/parser.pxi":954
- * u"The custom resolver registry of this parser."
- * def __get__(self):
- * return self._resolvers # <<<<<<<<<<<<<<
+ * def resolvers(self):
+ * """The custom resolver registry of this parser."""
+ * return self._resolvers # <<<<<<<<<<<<<<
*
- * property version:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_self->_resolvers));
__pyx_r = ((PyObject *)__pyx_v_self->_resolvers);
goto __pyx_L0;
- /* "src/lxml/parser.pxi":953
- * property resolvers:
- * u"The custom resolver registry of this parser."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._resolvers
+ /* "src/lxml/parser.pxi":952
*
+ * @property
+ * def resolvers(self): # <<<<<<<<<<<<<<
+ * """The custom resolver registry of this parser."""
+ * return self._resolvers
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/parser.pxi":958
- * property version:
- * u"The version of the underlying XML parser."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+/* "src/lxml/parser.pxi":957
*
+ * @property
+ * def version(self): # <<<<<<<<<<<<<<
+ * """The version of the underlying XML parser."""
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/parser.pxi":959
- * u"The version of the underlying XML parser."
- * def __get__(self):
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION # <<<<<<<<<<<<<<
+ * def version(self):
+ * """The version of the underlying XML parser."""
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION # <<<<<<<<<<<<<<
*
* def setElementClassLookup(self, ElementClassLookup lookup = None):
*/
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/parser.pxi":958
- * property version:
- * u"The version of the underlying XML parser."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ /* "src/lxml/parser.pxi":957
*
+ * @property
+ * def version(self): # <<<<<<<<<<<<<<
+ * """The version of the underlying XML parser."""
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*/
/* function exit code */
}
/* "src/lxml/parser.pxi":961
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*
* def setElementClassLookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "src/lxml/parser.pxi":961
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*
* def setElementClassLookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
#endif
}
-/* "src/lxml/parser.pxi":1239
- * different from what the ``error_log`` property returns.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._getPushParserContext()._error_log.copy()
+/* "src/lxml/parser.pxi":1234
+ *
+ * @property
+ * def feed_error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last (or current) run of the feed parser.
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/parser.pxi":1240
+ * different from what the ``error_log`` property returns.
* """
- * def __get__(self):
- * return self._getPushParserContext()._error_log.copy() # <<<<<<<<<<<<<<
+ * return self._getPushParserContext()._error_log.copy() # <<<<<<<<<<<<<<
*
* cpdef feed(self, data):
*/
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "src/lxml/parser.pxi":1239
- * different from what the ``error_log`` property returns.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._getPushParserContext()._error_log.copy()
+ /* "src/lxml/parser.pxi":1234
+ *
+ * @property
+ * def feed_error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last (or current) run of the feed parser.
*
*/
}
/* "src/lxml/parser.pxi":1242
- * return self._getPushParserContext()._error_log.copy()
+ * return self._getPushParserContext()._error_log.copy()
*
* cpdef feed(self, data): # <<<<<<<<<<<<<<
* u"""feed(self, data)
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
}
/* "src/lxml/parser.pxi":1242
- * return self._getPushParserContext()._error_log.copy()
+ * return self._getPushParserContext()._error_log.copy()
*
* cpdef feed(self, data): # <<<<<<<<<<<<<<
* u"""feed(self, data)
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
*/
__pyx_t_7 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._error_log);
__Pyx_INCREF(__pyx_t_7);
- __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7)); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(13, 138, __pyx_L3_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(13, 138, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "src/lxml/parsertarget.pxi":137
*/
__pyx_t_7 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._error_log);
__Pyx_INCREF(__pyx_t_7);
- __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7)); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(13, 162, __pyx_L6_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt, __pyx_v_filename, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(13, 162, __pyx_L6_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
/* "src/lxml/parsertarget.pxi":161
* self._parser = parser
* self._source = source # <<<<<<<<<<<<<<
*
- * property error_log:
+ * @property
*/
__Pyx_INCREF(__pyx_v_source);
__Pyx_GIVEREF(__pyx_v_source);
return __pyx_r;
}
-/* "src/lxml/iterparse.pxi":134
- * u"""The error log of the last (or current) parser run.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.feed_error_log
+/* "src/lxml/iterparse.pxi":132
*
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last (or current) parser run.
+ * """
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/iterparse.pxi":135
+ * """The error log of the last (or current) parser run.
* """
- * def __get__(self):
- * return self._parser.feed_error_log # <<<<<<<<<<<<<<
+ * return self._parser.feed_error_log # <<<<<<<<<<<<<<
*
- * property resolvers:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_parser), __pyx_n_s_feed_error_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 135, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/iterparse.pxi":134
- * u"""The error log of the last (or current) parser run.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.feed_error_log
+ /* "src/lxml/iterparse.pxi":132
*
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The error log of the last (or current) parser run.
+ * """
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/iterparse.pxi":140
- * u"""The custom resolver registry of the last (or current) parser run.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.resolvers
+/* "src/lxml/iterparse.pxi":138
*
+ * @property
+ * def resolvers(self): # <<<<<<<<<<<<<<
+ * """The custom resolver registry of the last (or current) parser run.
+ * """
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/iterparse.pxi":141
+ * """The custom resolver registry of the last (or current) parser run.
* """
- * def __get__(self):
- * return self._parser.resolvers # <<<<<<<<<<<<<<
+ * return self._parser.resolvers # <<<<<<<<<<<<<<
*
- * property version:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_parser), __pyx_n_s_resolvers); if (unlikely(!__pyx_t_1)) __PYX_ERR(14, 141, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/iterparse.pxi":140
- * u"""The custom resolver registry of the last (or current) parser run.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.resolvers
+ /* "src/lxml/iterparse.pxi":138
*
+ * @property
+ * def resolvers(self): # <<<<<<<<<<<<<<
+ * """The custom resolver registry of the last (or current) parser run.
+ * """
*/
/* function exit code */
return __pyx_r;
}
-/* "src/lxml/iterparse.pxi":145
- * property version:
- * u"""The version of the underlying XML parser."""
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.version
+/* "src/lxml/iterparse.pxi":144
*
+ * @property
+ * def version(self): # <<<<<<<<<<<<<<
+ * """The version of the underlying XML parser."""
+ * return self._parser.version
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/iterparse.pxi":146
- * u"""The version of the underlying XML parser."""
- * def __get__(self):
- * return self._parser.version # <<<<<<<<<<<<<<
+ * def version(self):
+ * """The version of the underlying XML parser."""
+ * return self._parser.version # <<<<<<<<<<<<<<
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None):
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/iterparse.pxi":145
- * property version:
- * u"""The version of the underlying XML parser."""
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._parser.version
+ /* "src/lxml/iterparse.pxi":144
*
+ * @property
+ * def version(self): # <<<<<<<<<<<<<<
+ * """The version of the underlying XML parser."""
+ * return self._parser.version
*/
/* function exit code */
}
/* "src/lxml/iterparse.pxi":148
- * return self._parser.version
+ * return self._parser.version
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u"""set_element_class_lookup(self, lookup = None)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "src/lxml/iterparse.pxi":148
- * return self._parser.version
+ * return self._parser.version
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u"""set_element_class_lookup(self, lookup = None)
* context._error_log)
* # no errors => all done
*/
- __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_context->__pyx_base._c_ctxt, __pyx_t_9, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_4)); if (unlikely(__pyx_t_6 == ((int)0))) __PYX_ERR(14, 212, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_context->__pyx_base._c_ctxt, __pyx_t_9, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_4)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(14, 212, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
* def __init__(self):
* self._error_log = _ErrorLog() # <<<<<<<<<<<<<<
*
- * property error_log:
+ * @property
*/
__pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(16, 20, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
/* "src/lxml/xinclude.pxi":23
*
- * property error_log:
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XInclude instance not initialised"
- * return self._error_log.copy()
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * assert self._error_log is not None, "XInclude instance not initialised"
+ * return self._error_log.copy()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xinclude.pxi":24
- * property error_log:
- * def __get__(self):
- * assert self._error_log is not None, "XInclude instance not initialised" # <<<<<<<<<<<<<<
- * return self._error_log.copy()
+ * @property
+ * def error_log(self):
+ * assert self._error_log is not None, "XInclude instance not initialised" # <<<<<<<<<<<<<<
+ * return self._error_log.copy()
*
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
#endif
/* "src/lxml/xinclude.pxi":25
- * def __get__(self):
- * assert self._error_log is not None, "XInclude instance not initialised"
- * return self._error_log.copy() # <<<<<<<<<<<<<<
+ * def error_log(self):
+ * assert self._error_log is not None, "XInclude instance not initialised"
+ * return self._error_log.copy() # <<<<<<<<<<<<<<
*
* def __call__(self, _Element node not None):
*/
/* "src/lxml/xinclude.pxi":23
*
- * property error_log:
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XInclude instance not initialised"
- * return self._error_log.copy()
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * assert self._error_log is not None, "XInclude instance not initialised"
+ * return self._error_log.copy()
*/
/* function exit code */
}
/* "src/lxml/xinclude.pxi":27
- * return self._error_log.copy()
+ * return self._error_log.copy()
*
* def __call__(self, _Element node not None): # <<<<<<<<<<<<<<
* u"__call__(self, node)"
}
/* "src/lxml/xinclude.pxi":27
- * return self._error_log.copy()
+ * return self._error_log.copy()
*
* def __call__(self, _Element node not None): # <<<<<<<<<<<<<<
* u"__call__(self, node)"
/* "src/lxml/extensions.pxi":299
*
- * property context_node:
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef xmlNode* c_node
- * if self._xpathCtxt is NULL:
+ * @property
+ * def context_node(self): # <<<<<<<<<<<<<<
+ * cdef xmlNode* c_node
+ * if self._xpathCtxt is NULL:
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/extensions.pxi":301
- * def __get__(self):
- * cdef xmlNode* c_node
- * if self._xpathCtxt is NULL: # <<<<<<<<<<<<<<
- * raise XPathError, \
- * u"XPath context is only usable during the evaluation"
+ * def context_node(self):
+ * cdef xmlNode* c_node
+ * if self._xpathCtxt is NULL: # <<<<<<<<<<<<<<
+ * raise XPathError, \
+ * u"XPath context is only usable during the evaluation"
*/
__pyx_t_1 = ((__pyx_v_self->_xpathCtxt == NULL) != 0);
if (unlikely(__pyx_t_1)) {
/* "src/lxml/extensions.pxi":302
- * cdef xmlNode* c_node
- * if self._xpathCtxt is NULL:
- * raise XPathError, \ # <<<<<<<<<<<<<<
- * u"XPath context is only usable during the evaluation"
- * c_node = self._xpathCtxt.node
+ * cdef xmlNode* c_node
+ * if self._xpathCtxt is NULL:
+ * raise XPathError, \ # <<<<<<<<<<<<<<
+ * u"XPath context is only usable during the evaluation"
+ * c_node = self._xpathCtxt.node
*/
__Pyx_Raise(((PyObject *)__pyx_ptype_4lxml_5etree_XPathError), __pyx_kp_u_XPath_context_is_only_usable_dur, 0, 0);
__PYX_ERR(9, 302, __pyx_L1_error)
/* "src/lxml/extensions.pxi":301
- * def __get__(self):
- * cdef xmlNode* c_node
- * if self._xpathCtxt is NULL: # <<<<<<<<<<<<<<
- * raise XPathError, \
- * u"XPath context is only usable during the evaluation"
+ * def context_node(self):
+ * cdef xmlNode* c_node
+ * if self._xpathCtxt is NULL: # <<<<<<<<<<<<<<
+ * raise XPathError, \
+ * u"XPath context is only usable during the evaluation"
*/
}
/* "src/lxml/extensions.pxi":304
- * raise XPathError, \
- * u"XPath context is only usable during the evaluation"
- * c_node = self._xpathCtxt.node # <<<<<<<<<<<<<<
- * if c_node is NULL:
- * raise XPathError, u"no context node"
+ * raise XPathError, \
+ * u"XPath context is only usable during the evaluation"
+ * c_node = self._xpathCtxt.node # <<<<<<<<<<<<<<
+ * if c_node is NULL:
+ * raise XPathError, u"no context node"
*/
__pyx_t_2 = __pyx_v_self->_xpathCtxt->node;
__pyx_v_c_node = __pyx_t_2;
/* "src/lxml/extensions.pxi":305
- * u"XPath context is only usable during the evaluation"
- * c_node = self._xpathCtxt.node
- * if c_node is NULL: # <<<<<<<<<<<<<<
- * raise XPathError, u"no context node"
- * if c_node.doc != self._xpathCtxt.doc:
+ * u"XPath context is only usable during the evaluation"
+ * c_node = self._xpathCtxt.node
+ * if c_node is NULL: # <<<<<<<<<<<<<<
+ * raise XPathError, u"no context node"
+ * if c_node.doc != self._xpathCtxt.doc:
*/
__pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
if (unlikely(__pyx_t_1)) {
/* "src/lxml/extensions.pxi":306
- * c_node = self._xpathCtxt.node
- * if c_node is NULL:
- * raise XPathError, u"no context node" # <<<<<<<<<<<<<<
- * if c_node.doc != self._xpathCtxt.doc:
- * raise XPathError, \
+ * c_node = self._xpathCtxt.node
+ * if c_node is NULL:
+ * raise XPathError, u"no context node" # <<<<<<<<<<<<<<
+ * if c_node.doc != self._xpathCtxt.doc:
+ * raise XPathError, \
*/
__Pyx_Raise(((PyObject *)__pyx_ptype_4lxml_5etree_XPathError), __pyx_kp_u_no_context_node, 0, 0);
__PYX_ERR(9, 306, __pyx_L1_error)
/* "src/lxml/extensions.pxi":305
- * u"XPath context is only usable during the evaluation"
- * c_node = self._xpathCtxt.node
- * if c_node is NULL: # <<<<<<<<<<<<<<
- * raise XPathError, u"no context node"
- * if c_node.doc != self._xpathCtxt.doc:
+ * u"XPath context is only usable during the evaluation"
+ * c_node = self._xpathCtxt.node
+ * if c_node is NULL: # <<<<<<<<<<<<<<
+ * raise XPathError, u"no context node"
+ * if c_node.doc != self._xpathCtxt.doc:
*/
}
/* "src/lxml/extensions.pxi":307
- * if c_node is NULL:
- * raise XPathError, u"no context node"
- * if c_node.doc != self._xpathCtxt.doc: # <<<<<<<<<<<<<<
- * raise XPathError, \
- * u"document-external context nodes are not supported"
+ * if c_node is NULL:
+ * raise XPathError, u"no context node"
+ * if c_node.doc != self._xpathCtxt.doc: # <<<<<<<<<<<<<<
+ * raise XPathError, \
+ * u"document-external context nodes are not supported"
*/
__pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_self->_xpathCtxt->doc) != 0);
if (unlikely(__pyx_t_1)) {
/* "src/lxml/extensions.pxi":308
- * raise XPathError, u"no context node"
- * if c_node.doc != self._xpathCtxt.doc:
- * raise XPathError, \ # <<<<<<<<<<<<<<
- * u"document-external context nodes are not supported"
- * if self._doc is None:
+ * raise XPathError, u"no context node"
+ * if c_node.doc != self._xpathCtxt.doc:
+ * raise XPathError, \ # <<<<<<<<<<<<<<
+ * u"document-external context nodes are not supported"
+ * if self._doc is None:
*/
__Pyx_Raise(((PyObject *)__pyx_ptype_4lxml_5etree_XPathError), __pyx_kp_u_document_external_context_nodes, 0, 0);
__PYX_ERR(9, 308, __pyx_L1_error)
/* "src/lxml/extensions.pxi":307
- * if c_node is NULL:
- * raise XPathError, u"no context node"
- * if c_node.doc != self._xpathCtxt.doc: # <<<<<<<<<<<<<<
- * raise XPathError, \
- * u"document-external context nodes are not supported"
+ * if c_node is NULL:
+ * raise XPathError, u"no context node"
+ * if c_node.doc != self._xpathCtxt.doc: # <<<<<<<<<<<<<<
+ * raise XPathError, \
+ * u"document-external context nodes are not supported"
*/
}
/* "src/lxml/extensions.pxi":310
- * raise XPathError, \
- * u"document-external context nodes are not supported"
- * if self._doc is None: # <<<<<<<<<<<<<<
- * raise XPathError, u"document context is missing"
- * return _elementFactory(self._doc, c_node)
+ * raise XPathError, \
+ * u"document-external context nodes are not supported"
+ * if self._doc is None: # <<<<<<<<<<<<<<
+ * raise XPathError, u"document context is missing"
+ * return _elementFactory(self._doc, c_node)
*/
__pyx_t_1 = (((PyObject *)__pyx_v_self->_doc) == Py_None);
__pyx_t_3 = (__pyx_t_1 != 0);
if (unlikely(__pyx_t_3)) {
/* "src/lxml/extensions.pxi":311
- * u"document-external context nodes are not supported"
- * if self._doc is None:
- * raise XPathError, u"document context is missing" # <<<<<<<<<<<<<<
- * return _elementFactory(self._doc, c_node)
+ * u"document-external context nodes are not supported"
+ * if self._doc is None:
+ * raise XPathError, u"document context is missing" # <<<<<<<<<<<<<<
+ * return _elementFactory(self._doc, c_node)
*
*/
__Pyx_Raise(((PyObject *)__pyx_ptype_4lxml_5etree_XPathError), __pyx_kp_u_document_context_is_missing, 0, 0);
__PYX_ERR(9, 311, __pyx_L1_error)
/* "src/lxml/extensions.pxi":310
- * raise XPathError, \
- * u"document-external context nodes are not supported"
- * if self._doc is None: # <<<<<<<<<<<<<<
- * raise XPathError, u"document context is missing"
- * return _elementFactory(self._doc, c_node)
+ * raise XPathError, \
+ * u"document-external context nodes are not supported"
+ * if self._doc is None: # <<<<<<<<<<<<<<
+ * raise XPathError, u"document context is missing"
+ * return _elementFactory(self._doc, c_node)
*/
}
/* "src/lxml/extensions.pxi":312
- * if self._doc is None:
- * raise XPathError, u"document context is missing"
- * return _elementFactory(self._doc, c_node) # <<<<<<<<<<<<<<
+ * if self._doc is None:
+ * raise XPathError, u"document context is missing"
+ * return _elementFactory(self._doc, c_node) # <<<<<<<<<<<<<<
*
- * property eval_context:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
/* "src/lxml/extensions.pxi":299
*
- * property context_node:
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef xmlNode* c_node
- * if self._xpathCtxt is NULL:
+ * @property
+ * def context_node(self): # <<<<<<<<<<<<<<
+ * cdef xmlNode* c_node
+ * if self._xpathCtxt is NULL:
*/
/* function exit code */
/* "src/lxml/extensions.pxi":315
*
- * property eval_context:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._eval_context_dict is None:
- * self._eval_context_dict = {}
+ * @property
+ * def eval_context(self): # <<<<<<<<<<<<<<
+ * if self._eval_context_dict is None:
+ * self._eval_context_dict = {}
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/extensions.pxi":316
- * property eval_context:
- * def __get__(self):
- * if self._eval_context_dict is None: # <<<<<<<<<<<<<<
- * self._eval_context_dict = {}
- * return self._eval_context_dict
+ * @property
+ * def eval_context(self):
+ * if self._eval_context_dict is None: # <<<<<<<<<<<<<<
+ * self._eval_context_dict = {}
+ * return self._eval_context_dict
*/
__pyx_t_1 = (__pyx_v_self->_eval_context_dict == ((PyObject*)Py_None));
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* "src/lxml/extensions.pxi":317
- * def __get__(self):
- * if self._eval_context_dict is None:
- * self._eval_context_dict = {} # <<<<<<<<<<<<<<
- * return self._eval_context_dict
+ * def eval_context(self):
+ * if self._eval_context_dict is None:
+ * self._eval_context_dict = {} # <<<<<<<<<<<<<<
+ * return self._eval_context_dict
*
*/
__pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 317, __pyx_L1_error)
__pyx_t_3 = 0;
/* "src/lxml/extensions.pxi":316
- * property eval_context:
- * def __get__(self):
- * if self._eval_context_dict is None: # <<<<<<<<<<<<<<
- * self._eval_context_dict = {}
- * return self._eval_context_dict
+ * @property
+ * def eval_context(self):
+ * if self._eval_context_dict is None: # <<<<<<<<<<<<<<
+ * self._eval_context_dict = {}
+ * return self._eval_context_dict
*/
}
/* "src/lxml/extensions.pxi":318
- * if self._eval_context_dict is None:
- * self._eval_context_dict = {}
- * return self._eval_context_dict # <<<<<<<<<<<<<<
+ * if self._eval_context_dict is None:
+ * self._eval_context_dict = {}
+ * return self._eval_context_dict # <<<<<<<<<<<<<<
*
* # Python reference keeping during XPath function evaluation
*/
/* "src/lxml/extensions.pxi":315
*
- * property eval_context:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._eval_context_dict is None:
- * self._eval_context_dict = {}
+ * @property
+ * def eval_context(self): # <<<<<<<<<<<<<<
+ * if self._eval_context_dict is None:
+ * self._eval_context_dict = {}
*/
/* function exit code */
/* "src/lxml/xpath.pxi":137
*
- * property error_log:
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy()
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * assert self._error_log is not None, "XPath evaluator not initialised"
+ * return self._error_log.copy()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xpath.pxi":138
- * property error_log:
- * def __get__(self):
- * assert self._error_log is not None, "XPath evaluator not initialised" # <<<<<<<<<<<<<<
- * return self._error_log.copy()
+ * @property
+ * def error_log(self):
+ * assert self._error_log is not None, "XPath evaluator not initialised" # <<<<<<<<<<<<<<
+ * return self._error_log.copy()
*
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
#endif
/* "src/lxml/xpath.pxi":139
- * def __get__(self):
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy() # <<<<<<<<<<<<<<
+ * def error_log(self):
+ * assert self._error_log is not None, "XPath evaluator not initialised"
+ * return self._error_log.copy() # <<<<<<<<<<<<<<
*
* def __dealloc__(self):
*/
/* "src/lxml/xpath.pxi":137
*
- * property error_log:
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy()
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * assert self._error_log is not None, "XPath evaluator not initialised"
+ * return self._error_log.copy()
*/
/* function exit code */
}
/* "src/lxml/xpath.pxi":141
- * return self._error_log.copy()
+ * return self._error_log.copy()
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
* if self._xpathCtxt is not NULL:
}
/* "src/lxml/xpath.pxi":141
- * return self._error_log.copy()
+ * return self._error_log.copy()
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
* if self._xpathCtxt is not NULL:
* self._unlock()
* return result # <<<<<<<<<<<<<<
*
- * property path:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_result);
return __pyx_r;
}
-/* "src/lxml/xpath.pxi":454
- * u"""The literal XPath expression.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._path.decode(u'UTF-8')
+/* "src/lxml/xpath.pxi":452
*
+ * @property
+ * def path(self): # <<<<<<<<<<<<<<
+ * """The literal XPath expression.
+ * """
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xpath.pxi":455
+ * """The literal XPath expression.
* """
- * def __get__(self):
- * return self._path.decode(u'UTF-8') # <<<<<<<<<<<<<<
+ * return self._path.decode(u'UTF-8') # <<<<<<<<<<<<<<
*
* def __dealloc__(self):
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xpath.pxi":454
- * u"""The literal XPath expression.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._path.decode(u'UTF-8')
+ /* "src/lxml/xpath.pxi":452
*
+ * @property
+ * def path(self): # <<<<<<<<<<<<<<
+ * """The literal XPath expression.
+ * """
*/
/* function exit code */
}
/* "src/lxml/xpath.pxi":457
- * return self._path.decode(u'UTF-8')
+ * return self._path.decode(u'UTF-8')
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
* if self._xpath is not NULL:
}
/* "src/lxml/xpath.pxi":457
- * return self._path.decode(u'UTF-8')
+ * return self._path.decode(u'UTF-8')
*
* def __dealloc__(self): # <<<<<<<<<<<<<<
* if self._xpath is not NULL:
* cdef void _register_in_context(self, xslt.xsltTransformContext* ctxt):
* xslt.xsltSetCtxtSecurityPrefs(self._prefs, ctxt) # <<<<<<<<<<<<<<
*
- * property options:
+ * @property
*/
(void)(xsltSetCtxtSecurityPrefs(__pyx_v_self->_prefs, __pyx_v_ctxt));
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/xslt.pxi":231
- * property options:
- * u"The access control configuration as a map of options."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return {
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+/* "src/lxml/xslt.pxi":230
+ *
+ * @property
+ * def options(self): # <<<<<<<<<<<<<<
+ * """The access control configuration as a map of options."""
+ * return {
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xslt.pxi":232
- * u"The access control configuration as a map of options."
- * def __get__(self):
- * return { # <<<<<<<<<<<<<<
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
- * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
+ * def options(self):
+ * """The access control configuration as a map of options."""
+ * return { # <<<<<<<<<<<<<<
+ * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+ * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
*/
__Pyx_XDECREF(__pyx_r);
/* "src/lxml/xslt.pxi":233
- * def __get__(self):
- * return {
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE), # <<<<<<<<<<<<<<
- * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
- * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
+ * """The access control configuration as a map of options."""
+ * return {
+ * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE), # <<<<<<<<<<<<<<
+ * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
+ * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
*/
__pyx_t_1 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "src/lxml/xslt.pxi":234
- * return {
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
- * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE), # <<<<<<<<<<<<<<
- * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
- * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
+ * return {
+ * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+ * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE), # <<<<<<<<<<<<<<
+ * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
+ * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_17XSLTAccessControl__optval(__pyx_v_self, XSLT_SECPREF_WRITE_FILE); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "src/lxml/xslt.pxi":235
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
- * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
- * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY), # <<<<<<<<<<<<<<
- * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
- * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
+ * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+ * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
+ * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY), # <<<<<<<<<<<<<<
+ * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
+ * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_17XSLTAccessControl__optval(__pyx_v_self, XSLT_SECPREF_CREATE_DIRECTORY); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "src/lxml/xslt.pxi":236
- * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
- * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
- * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK), # <<<<<<<<<<<<<<
- * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
- * }
+ * u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
+ * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
+ * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK), # <<<<<<<<<<<<<<
+ * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
+ * }
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_17XSLTAccessControl__optval(__pyx_v_self, XSLT_SECPREF_READ_NETWORK); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "src/lxml/xslt.pxi":237
- * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
- * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
- * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK), # <<<<<<<<<<<<<<
- * }
+ * u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
+ * u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
+ * u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK), # <<<<<<<<<<<<<<
+ * }
*
*/
__pyx_t_2 = __pyx_f_4lxml_5etree_17XSLTAccessControl__optval(__pyx_v_self, XSLT_SECPREF_WRITE_NETWORK); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 237, __pyx_L1_error)
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xslt.pxi":231
- * property options:
- * u"The access control configuration as a map of options."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return {
- * u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+ /* "src/lxml/xslt.pxi":230
+ *
+ * @property
+ * def options(self): # <<<<<<<<<<<<<<
+ * """The access control configuration as a map of options."""
+ * return {
*/
/* function exit code */
* if self._c_style is not NULL:
* xslt.xsltFreeStylesheet(self._c_style) # <<<<<<<<<<<<<<
*
- * property error_log:
+ * @property
*/
xsltFreeStylesheet(__pyx_v_self->_c_style);
__Pyx_RefNannyFinishContext();
}
-/* "src/lxml/xslt.pxi":432
- * property error_log:
- * u"The log of errors and warnings of an XSLT execution."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._error_log.copy()
+/* "src/lxml/xslt.pxi":431
*
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The log of errors and warnings of an XSLT execution."""
+ * return self._error_log.copy()
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/xslt.pxi":433
- * u"The log of errors and warnings of an XSLT execution."
- * def __get__(self):
- * return self._error_log.copy() # <<<<<<<<<<<<<<
+ * def error_log(self):
+ * """The log of errors and warnings of an XSLT execution."""
+ * return self._error_log.copy() # <<<<<<<<<<<<<<
*
* @staticmethod
*/
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "src/lxml/xslt.pxi":432
- * property error_log:
- * u"The log of errors and warnings of an XSLT execution."
- * def __get__(self): # <<<<<<<<<<<<<<
- * return self._error_log.copy()
+ /* "src/lxml/xslt.pxi":431
*
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The log of errors and warnings of an XSLT execution."""
+ * return self._error_log.copy()
*/
/* function exit code */
}
/* "src/lxml/xslt.pxi":852
- * u"""Return an ElementTree with profiling data for the stylesheet run.
+ * """Return an ElementTree with profiling data for the stylesheet run.
* """
* def __get__(self): # <<<<<<<<<<<<<<
* cdef object root
goto __pyx_L0;
/* "src/lxml/xslt.pxi":852
- * u"""Return an ElementTree with profiling data for the stylesheet run.
+ * """Return an ElementTree with profiling data for the stylesheet run.
* """
* def __get__(self): # <<<<<<<<<<<<<<
* cdef object root
#endif
}
-/* "lxml/etree.pyx":3508
+/* "lxml/etree.pyx":3519
* u"Base class for XML validators."
* cdef _ErrorLog _error_log
* def __cinit__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__cinit__", 0);
- /* "lxml/etree.pyx":3509
+ /* "lxml/etree.pyx":3520
* cdef _ErrorLog _error_log
* def __cinit__(self):
* self._error_log = _ErrorLog() # <<<<<<<<<<<<<<
*
* def validate(self, etree):
*/
- __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3520, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->_error_log);
__pyx_v_self->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3508
+ /* "lxml/etree.pyx":3519
* u"Base class for XML validators."
* cdef _ErrorLog _error_log
* def __cinit__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3511
+/* "lxml/etree.pyx":3522
* self._error_log = _ErrorLog()
*
* def validate(self, etree): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("validate", 0);
- /* "lxml/etree.pyx":3518
+ /* "lxml/etree.pyx":3529
* Returns true if document is valid, false if not.
* """
* return self(etree) # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_etree) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_etree);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3518, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3529, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3511
+ /* "lxml/etree.pyx":3522
* self._error_log = _ErrorLog()
*
* def validate(self, etree): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3520
+/* "lxml/etree.pyx":3531
* return self(etree)
*
* def assertValid(self, etree): # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("assertValid", 0);
- /* "lxml/etree.pyx":3525
+ /* "lxml/etree.pyx":3536
* Raises `DocumentInvalid` if the document does not comply with the schema.
* """
* if not self(etree): # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_etree) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_etree);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3525, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3525, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3536, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = ((!__pyx_t_4) != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":3526
+ /* "lxml/etree.pyx":3537
* """
* if not self(etree):
* raise DocumentInvalid(self._error_log._buildExceptionMessage( # <<<<<<<<<<<<<<
* u"Document does not comply with schema"),
* self._error_log)
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), __pyx_kp_u_Document_does_not_comply_with_sc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3526, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), __pyx_kp_u_Document_does_not_comply_with_sc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "lxml/etree.pyx":3528
+ /* "lxml/etree.pyx":3539
* raise DocumentInvalid(self._error_log._buildExceptionMessage(
* u"Document does not comply with schema"),
* self._error_log) # <<<<<<<<<<<<<<
*
* def assert_(self, etree):
*/
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3526, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->_error_log));
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":3526
+ /* "lxml/etree.pyx":3537
* """
* if not self(etree):
* raise DocumentInvalid(self._error_log._buildExceptionMessage( # <<<<<<<<<<<<<<
* u"Document does not comply with schema"),
* self._error_log)
*/
- __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_DocumentInvalid), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3526, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree_DocumentInvalid), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3537, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __PYX_ERR(0, 3526, __pyx_L1_error)
+ __PYX_ERR(0, 3537, __pyx_L1_error)
- /* "lxml/etree.pyx":3525
+ /* "lxml/etree.pyx":3536
* Raises `DocumentInvalid` if the document does not comply with the schema.
* """
* if not self(etree): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3520
+ /* "lxml/etree.pyx":3531
* return self(etree)
*
* def assertValid(self, etree): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3530
+/* "lxml/etree.pyx":3541
* self._error_log)
*
* def assert_(self, etree): # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("assert_", 0);
- /* "lxml/etree.pyx":3535
+ /* "lxml/etree.pyx":3546
* Raises `AssertionError` if the document does not comply with the schema.
* """
* if not self(etree): # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_etree) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_etree);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3535, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3546, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3535, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3546, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = ((!__pyx_t_4) != 0);
if (unlikely(__pyx_t_5)) {
- /* "lxml/etree.pyx":3536
+ /* "lxml/etree.pyx":3547
* """
* if not self(etree):
* raise AssertionError, self._error_log._buildExceptionMessage( # <<<<<<<<<<<<<<
* u"Document does not comply with schema")
*
*/
- __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), __pyx_kp_u_Document_does_not_comply_with_sc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3536, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), __pyx_kp_u_Document_does_not_comply_with_sc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3547, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_1, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __PYX_ERR(0, 3536, __pyx_L1_error)
+ __PYX_ERR(0, 3547, __pyx_L1_error)
- /* "lxml/etree.pyx":3535
+ /* "lxml/etree.pyx":3546
* Raises `AssertionError` if the document does not comply with the schema.
* """
* if not self(etree): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/etree.pyx":3530
+ /* "lxml/etree.pyx":3541
* self._error_log)
*
* def assert_(self, etree): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/etree.pyx":3539
+/* "lxml/etree.pyx":3550
* u"Document does not comply with schema")
*
* cpdef _append_log_message(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_append_log_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_append_log_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message)) {
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_domain); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_domain); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_level); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_level); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_7 = __pyx_t_1; __pyx_t_8 = NULL;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_v_message, __pyx_v_filename};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 6+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 6+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
PyObject *__pyx_temp[7] = {__pyx_t_8, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_v_message, __pyx_v_filename};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 6+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 6+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else
#endif
{
- __pyx_t_10 = PyTuple_New(6+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_10 = PyTuple_New(6+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_8) {
__Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_6 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "lxml/etree.pyx":3541
+ /* "lxml/etree.pyx":3552
* cpdef _append_log_message(self, int domain, int type, int level, int line,
* message, filename):
* self._error_log._receiveGeneric(domain, type, level, line, message, # <<<<<<<<<<<<<<
*/
__pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename);
- /* "lxml/etree.pyx":3539
+ /* "lxml/etree.pyx":3550
* u"Document does not comply with schema")
*
* cpdef _append_log_message(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 1); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 1); __PYX_ERR(0, 3550, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 2); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 2); __PYX_ERR(0, 3550, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_line_2)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 3); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 3); __PYX_ERR(0, 3550, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_message)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 4); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 4); __PYX_ERR(0, 3550, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 5); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 5); __PYX_ERR(0, 3550, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_append_log_message") < 0)) __PYX_ERR(0, 3539, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_append_log_message") < 0)) __PYX_ERR(0, 3550, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
goto __pyx_L5_argtuple_error;
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
}
- __pyx_v_domain = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_domain == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3539, __pyx_L3_error)
- __pyx_v_type = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3539, __pyx_L3_error)
- __pyx_v_level = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3539, __pyx_L3_error)
- __pyx_v_line = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3539, __pyx_L3_error)
+ __pyx_v_domain = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_domain == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
+ __pyx_v_type = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
+ __pyx_v_level = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
+ __pyx_v_line = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
__pyx_v_message = values[4];
__pyx_v_filename = values[5];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3539, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3550, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.etree._Validator._append_log_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_append_log_message", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_10_Validator__append_log_message(__pyx_v_self, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_10_Validator__append_log_message(__pyx_v_self, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "lxml/etree.pyx":3544
+/* "lxml/etree.pyx":3555
* filename)
*
* cpdef _clear_error_log(self): # <<<<<<<<<<<<<<
if (unlikely(__pyx_skip_dispatch)) ;
/* Check if overridden in Python */
else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
#endif
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_error_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clear_error_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log)) {
__Pyx_XDECREF(__pyx_r);
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
__pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
__pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
}
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP
+ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
}
#endif
}
- /* "lxml/etree.pyx":3545
+ /* "lxml/etree.pyx":3556
*
* cpdef _clear_error_log(self):
* self._error_log.clear() # <<<<<<<<<<<<<<
*
- * property error_log:
+ * @property
*/
- __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->clear(__pyx_v_self->_error_log, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3545, __pyx_L1_error)
+ __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->clear(__pyx_v_self->_error_log, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3556, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3544
+ /* "lxml/etree.pyx":3555
* filename)
*
* cpdef _clear_error_log(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_clear_error_log", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_5etree_10_Validator__clear_error_log(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_5etree_10_Validator__clear_error_log(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
return __pyx_r;
}
-/* "lxml/etree.pyx":3549
- * property error_log:
- * u"The log of validation errors and warnings."
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy()
+/* "lxml/etree.pyx":3559
+ *
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The log of validation errors and warnings."""
+ * assert self._error_log is not None, "XPath evaluator not initialised"
*/
/* Python wrapper */
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/etree.pyx":3550
- * u"The log of validation errors and warnings."
- * def __get__(self):
- * assert self._error_log is not None, "XPath evaluator not initialised" # <<<<<<<<<<<<<<
- * return self._error_log.copy()
+ /* "lxml/etree.pyx":3561
+ * def error_log(self):
+ * """The log of validation errors and warnings."""
+ * assert self._error_log is not None, "XPath evaluator not initialised" # <<<<<<<<<<<<<<
+ * return self._error_log.copy()
*
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
__pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_XPath_evaluator_not_initialised);
- __PYX_ERR(0, 3550, __pyx_L1_error)
+ __PYX_ERR(0, 3561, __pyx_L1_error)
}
}
#endif
- /* "lxml/etree.pyx":3551
- * def __get__(self):
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy() # <<<<<<<<<<<<<<
+ /* "lxml/etree.pyx":3562
+ * """The log of validation errors and warnings."""
+ * assert self._error_log is not None, "XPath evaluator not initialised"
+ * return self._error_log.copy() # <<<<<<<<<<<<<<
*
* include "dtd.pxi" # DTD
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3551, __pyx_L1_error)
+ __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3562, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/etree.pyx":3549
- * property error_log:
- * u"The log of validation errors and warnings."
- * def __get__(self): # <<<<<<<<<<<<<<
- * assert self._error_log is not None, "XPath evaluator not initialised"
- * return self._error_log.copy()
+ /* "lxml/etree.pyx":3559
+ *
+ * @property
+ * def error_log(self): # <<<<<<<<<<<<<<
+ * """The log of validation errors and warnings."""
+ * assert self._error_log is not None, "XPath evaluator not initialised"
*/
/* function exit code */
* def __repr__(self):
* return "<%s.%s object name=%r type=%r occur=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.type, self.occur, id(self)) # <<<<<<<<<<<<<<
*
- * property name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 29, __pyx_L1_error)
/* "src/lxml/dtd.pxi":32
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":33
- * property name:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 33, __pyx_L1_error)
/* "src/lxml/dtd.pxi":34
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
*
- * property type:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
/* "src/lxml/dtd.pxi":32
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":37
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.type
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.type
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":38
- * property type:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef int type = self._c_node.type
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
+ * @property
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef int type = self._c_node.type
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 38, __pyx_L1_error)
/* "src/lxml/dtd.pxi":39
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.type # <<<<<<<<<<<<<<
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
- * return "pcdata"
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.type # <<<<<<<<<<<<<<
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
+ * return "pcdata"
*/
__pyx_t_2 = __pyx_v_self->_c_node->type;
__pyx_v_type = __pyx_t_2;
/* "src/lxml/dtd.pxi":40
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.type
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA: # <<<<<<<<<<<<<<
- * return "pcdata"
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.type
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA: # <<<<<<<<<<<<<<
+ * return "pcdata"
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
*/
switch (__pyx_v_type) {
case XML_ELEMENT_CONTENT_PCDATA:
/* "src/lxml/dtd.pxi":41
- * cdef int type = self._c_node.type
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
- * return "pcdata" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
- * return "element"
+ * cdef int type = self._c_node.type
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
+ * return "pcdata" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ * return "element"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_pcdata);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":40
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.type
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA: # <<<<<<<<<<<<<<
- * return "pcdata"
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.type
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA: # <<<<<<<<<<<<<<
+ * return "pcdata"
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
*/
break;
case XML_ELEMENT_CONTENT_ELEMENT:
/* "src/lxml/dtd.pxi":43
- * return "pcdata"
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
- * return "element" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
- * return "seq"
+ * return "pcdata"
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ * return "element" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
+ * return "seq"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_element);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":42
- * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
- * return "pcdata"
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT: # <<<<<<<<<<<<<<
- * return "element"
- * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
+ * if type == tree.XML_ELEMENT_CONTENT_PCDATA:
+ * return "pcdata"
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT: # <<<<<<<<<<<<<<
+ * return "element"
+ * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
*/
break;
case XML_ELEMENT_CONTENT_SEQ:
/* "src/lxml/dtd.pxi":45
- * return "element"
- * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
- * return "seq" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_CONTENT_OR:
- * return "or"
+ * return "element"
+ * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
+ * return "seq" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_CONTENT_OR:
+ * return "or"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_seq);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":44
- * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
- * return "element"
- * elif type == tree.XML_ELEMENT_CONTENT_SEQ: # <<<<<<<<<<<<<<
- * return "seq"
- * elif type == tree.XML_ELEMENT_CONTENT_OR:
+ * elif type == tree.XML_ELEMENT_CONTENT_ELEMENT:
+ * return "element"
+ * elif type == tree.XML_ELEMENT_CONTENT_SEQ: # <<<<<<<<<<<<<<
+ * return "seq"
+ * elif type == tree.XML_ELEMENT_CONTENT_OR:
*/
break;
case XML_ELEMENT_CONTENT_OR:
/* "src/lxml/dtd.pxi":47
- * return "seq"
- * elif type == tree.XML_ELEMENT_CONTENT_OR:
- * return "or" # <<<<<<<<<<<<<<
- * else:
- * return None
+ * return "seq"
+ * elif type == tree.XML_ELEMENT_CONTENT_OR:
+ * return "or" # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_or);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":46
- * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
- * return "seq"
- * elif type == tree.XML_ELEMENT_CONTENT_OR: # <<<<<<<<<<<<<<
- * return "or"
- * else:
+ * elif type == tree.XML_ELEMENT_CONTENT_SEQ:
+ * return "seq"
+ * elif type == tree.XML_ELEMENT_CONTENT_OR: # <<<<<<<<<<<<<<
+ * return "or"
+ * else:
*/
break;
default:
/* "src/lxml/dtd.pxi":49
- * return "or"
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return "or"
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property occur:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "src/lxml/dtd.pxi":37
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.type
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.type
*/
/* function exit code */
/* "src/lxml/dtd.pxi":52
*
- * property occur:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int occur = self._c_node.ocur
+ * @property
+ * def occur(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int occur = self._c_node.ocur
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":53
- * property occur:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef int occur = self._c_node.ocur
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
+ * @property
+ * def occur(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef int occur = self._c_node.ocur
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 53, __pyx_L1_error)
/* "src/lxml/dtd.pxi":54
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef int occur = self._c_node.ocur # <<<<<<<<<<<<<<
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
- * return "once"
+ * def occur(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int occur = self._c_node.ocur # <<<<<<<<<<<<<<
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
+ * return "once"
*/
__pyx_t_2 = __pyx_v_self->_c_node->ocur;
__pyx_v_occur = __pyx_t_2;
/* "src/lxml/dtd.pxi":55
- * _assertValidDTDNode(self, self._c_node)
- * cdef int occur = self._c_node.ocur
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE: # <<<<<<<<<<<<<<
- * return "once"
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int occur = self._c_node.ocur
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE: # <<<<<<<<<<<<<<
+ * return "once"
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
*/
switch (__pyx_v_occur) {
case XML_ELEMENT_CONTENT_ONCE:
/* "src/lxml/dtd.pxi":56
- * cdef int occur = self._c_node.ocur
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
- * return "once" # <<<<<<<<<<<<<<
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
- * return "opt"
+ * cdef int occur = self._c_node.ocur
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
+ * return "once" # <<<<<<<<<<<<<<
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ * return "opt"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_once);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":55
- * _assertValidDTDNode(self, self._c_node)
- * cdef int occur = self._c_node.ocur
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE: # <<<<<<<<<<<<<<
- * return "once"
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int occur = self._c_node.ocur
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE: # <<<<<<<<<<<<<<
+ * return "once"
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
*/
break;
case XML_ELEMENT_CONTENT_OPT:
/* "src/lxml/dtd.pxi":58
- * return "once"
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
- * return "opt" # <<<<<<<<<<<<<<
- * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
- * return "mult"
+ * return "once"
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ * return "opt" # <<<<<<<<<<<<<<
+ * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
+ * return "mult"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_opt);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":57
- * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
- * return "once"
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT: # <<<<<<<<<<<<<<
- * return "opt"
- * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
+ * if occur == tree.XML_ELEMENT_CONTENT_ONCE:
+ * return "once"
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT: # <<<<<<<<<<<<<<
+ * return "opt"
+ * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
*/
break;
case XML_ELEMENT_CONTENT_MULT:
/* "src/lxml/dtd.pxi":60
- * return "opt"
- * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
- * return "mult" # <<<<<<<<<<<<<<
- * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
- * return "plus"
+ * return "opt"
+ * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
+ * return "mult" # <<<<<<<<<<<<<<
+ * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
+ * return "plus"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_mult);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":59
- * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
- * return "opt"
- * elif occur == tree.XML_ELEMENT_CONTENT_MULT: # <<<<<<<<<<<<<<
- * return "mult"
- * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
+ * elif occur == tree.XML_ELEMENT_CONTENT_OPT:
+ * return "opt"
+ * elif occur == tree.XML_ELEMENT_CONTENT_MULT: # <<<<<<<<<<<<<<
+ * return "mult"
+ * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
*/
break;
case XML_ELEMENT_CONTENT_PLUS:
/* "src/lxml/dtd.pxi":62
- * return "mult"
- * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
- * return "plus" # <<<<<<<<<<<<<<
- * else:
- * return None
+ * return "mult"
+ * elif occur == tree.XML_ELEMENT_CONTENT_PLUS:
+ * return "plus" # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_plus);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":61
- * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
- * return "mult"
- * elif occur == tree.XML_ELEMENT_CONTENT_PLUS: # <<<<<<<<<<<<<<
- * return "plus"
- * else:
+ * elif occur == tree.XML_ELEMENT_CONTENT_MULT:
+ * return "mult"
+ * elif occur == tree.XML_ELEMENT_CONTENT_PLUS: # <<<<<<<<<<<<<<
+ * return "plus"
+ * else:
*/
break;
default:
/* "src/lxml/dtd.pxi":64
- * return "plus"
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return "plus"
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property left:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "src/lxml/dtd.pxi":52
*
- * property occur:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int occur = self._c_node.ocur
+ * @property
+ * def occur(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int occur = self._c_node.ocur
*/
/* function exit code */
/* "src/lxml/dtd.pxi":67
*
- * property left:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * c1 = self._c_node.c1
+ * @property
+ * def left(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * c1 = self._c_node.c1
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":68
- * property left:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * c1 = self._c_node.c1
- * if c1:
+ * @property
+ * def left(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * c1 = self._c_node.c1
+ * if c1:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 68, __pyx_L1_error)
/* "src/lxml/dtd.pxi":69
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * c1 = self._c_node.c1 # <<<<<<<<<<<<<<
- * if c1:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * def left(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * c1 = self._c_node.c1 # <<<<<<<<<<<<<<
+ * if c1:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
*/
__pyx_t_2 = __pyx_v_self->_c_node->c1;
__pyx_v_c1 = __pyx_t_2;
/* "src/lxml/dtd.pxi":70
- * _assertValidDTDNode(self, self._c_node)
- * c1 = self._c_node.c1
- * if c1: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * c1 = self._c_node.c1
+ * if c1: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
__pyx_t_3 = (__pyx_v_c1 != 0);
if (__pyx_t_3) {
/* "src/lxml/dtd.pxi":71
- * c1 = self._c_node.c1
- * if c1:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c1
+ * c1 = self._c_node.c1
+ * if c1:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c1
*/
__pyx_t_4 = ((PyObject *)__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(((PyTypeObject *)__pyx_ptype_4lxml_5etree__DTDElementContentDecl), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 71, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":72
- * if c1:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd # <<<<<<<<<<<<<<
- * node._c_node = <tree.xmlElementContent*>c1
- * return node
+ * if c1:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd # <<<<<<<<<<<<<<
+ * node._c_node = <tree.xmlElementContent*>c1
+ * return node
*/
__pyx_t_5 = ((PyObject *)__pyx_v_self->_dtd);
__Pyx_INCREF(__pyx_t_5);
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":73
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c1 # <<<<<<<<<<<<<<
- * return node
- * else:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c1 # <<<<<<<<<<<<<<
+ * return node
+ * else:
*/
__pyx_v_node->_c_node = ((xmlElementContent *)__pyx_v_c1);
/* "src/lxml/dtd.pxi":74
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c1
- * return node # <<<<<<<<<<<<<<
- * else:
- * return None
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c1
+ * return node # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_node));
goto __pyx_L0;
/* "src/lxml/dtd.pxi":70
- * _assertValidDTDNode(self, self._c_node)
- * c1 = self._c_node.c1
- * if c1: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * c1 = self._c_node.c1
+ * if c1: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
}
/* "src/lxml/dtd.pxi":76
- * return node
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return node
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property right:
+ * @property
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
/* "src/lxml/dtd.pxi":67
*
- * property left:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * c1 = self._c_node.c1
+ * @property
+ * def left(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * c1 = self._c_node.c1
*/
/* function exit code */
/* "src/lxml/dtd.pxi":79
*
- * property right:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * c2 = self._c_node.c2
+ * @property
+ * def right(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * c2 = self._c_node.c2
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":80
- * property right:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * c2 = self._c_node.c2
- * if c2:
+ * @property
+ * def right(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * c2 = self._c_node.c2
+ * if c2:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 80, __pyx_L1_error)
/* "src/lxml/dtd.pxi":81
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * c2 = self._c_node.c2 # <<<<<<<<<<<<<<
- * if c2:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * def right(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * c2 = self._c_node.c2 # <<<<<<<<<<<<<<
+ * if c2:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
*/
__pyx_t_2 = __pyx_v_self->_c_node->c2;
__pyx_v_c2 = __pyx_t_2;
/* "src/lxml/dtd.pxi":82
- * _assertValidDTDNode(self, self._c_node)
- * c2 = self._c_node.c2
- * if c2: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * c2 = self._c_node.c2
+ * if c2: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
__pyx_t_3 = (__pyx_v_c2 != 0);
if (__pyx_t_3) {
/* "src/lxml/dtd.pxi":83
- * c2 = self._c_node.c2
- * if c2:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c2
+ * c2 = self._c_node.c2
+ * if c2:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c2
*/
__pyx_t_4 = ((PyObject *)__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(((PyTypeObject *)__pyx_ptype_4lxml_5etree__DTDElementContentDecl), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 83, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":84
- * if c2:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd # <<<<<<<<<<<<<<
- * node._c_node = <tree.xmlElementContent*>c2
- * return node
+ * if c2:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd # <<<<<<<<<<<<<<
+ * node._c_node = <tree.xmlElementContent*>c2
+ * return node
*/
__pyx_t_5 = ((PyObject *)__pyx_v_self->_dtd);
__Pyx_INCREF(__pyx_t_5);
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":85
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c2 # <<<<<<<<<<<<<<
- * return node
- * else:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c2 # <<<<<<<<<<<<<<
+ * return node
+ * else:
*/
__pyx_v_node->_c_node = ((xmlElementContent *)__pyx_v_c2);
/* "src/lxml/dtd.pxi":86
- * node._dtd = self._dtd
- * node._c_node = <tree.xmlElementContent*>c2
- * return node # <<<<<<<<<<<<<<
- * else:
- * return None
+ * node._dtd = self._dtd
+ * node._c_node = <tree.xmlElementContent*>c2
+ * return node # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_node));
goto __pyx_L0;
/* "src/lxml/dtd.pxi":82
- * _assertValidDTDNode(self, self._c_node)
- * c2 = self._c_node.c2
- * if c2: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * c2 = self._c_node.c2
+ * if c2: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
}
/* "src/lxml/dtd.pxi":88
- * return node
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return node
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
*
*/
/* "src/lxml/dtd.pxi":79
*
- * property right:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * c2 = self._c_node.c2
+ * @property
+ * def right(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * c2 = self._c_node.c2
*/
/* function exit code */
* def __repr__(self):
* return "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.elemname, self.prefix, self.type, self.default, self.default_value, id(self)) # <<<<<<<<<<<<<<
*
- * property name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 99, __pyx_L1_error)
/* "src/lxml/dtd.pxi":102
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":103
- * property name:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 103, __pyx_L1_error)
/* "src/lxml/dtd.pxi":104
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
*
- * property elemname:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
/* "src/lxml/dtd.pxi":102
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":107
*
- * property elemname:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
+ * @property
+ * def elemname(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":108
- * property elemname:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
+ * @property
+ * def elemname(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 108, __pyx_L1_error)
/* "src/lxml/dtd.pxi":109
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None # <<<<<<<<<<<<<<
+ * def elemname(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None # <<<<<<<<<<<<<<
*
- * property prefix:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->elem != NULL) != 0)) {
/* "src/lxml/dtd.pxi":107
*
- * property elemname:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
+ * @property
+ * def elemname(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.elem) if self._c_node.elem is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":112
*
- * property prefix:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":113
- * property prefix:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 113, __pyx_L1_error)
/* "src/lxml/dtd.pxi":114
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None # <<<<<<<<<<<<<<
+ * def prefix(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None # <<<<<<<<<<<<<<
*
- * property type:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->prefix != NULL) != 0)) {
/* "src/lxml/dtd.pxi":112
*
- * property prefix:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":117
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.atype
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.atype
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":118
- * property type:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef int type = self._c_node.atype
- * if type == tree.XML_ATTRIBUTE_CDATA:
+ * @property
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef int type = self._c_node.atype
+ * if type == tree.XML_ATTRIBUTE_CDATA:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 118, __pyx_L1_error)
/* "src/lxml/dtd.pxi":119
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.atype # <<<<<<<<<<<<<<
- * if type == tree.XML_ATTRIBUTE_CDATA:
- * return "cdata"
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.atype # <<<<<<<<<<<<<<
+ * if type == tree.XML_ATTRIBUTE_CDATA:
+ * return "cdata"
*/
__pyx_t_2 = __pyx_v_self->_c_node->atype;
__pyx_v_type = __pyx_t_2;
/* "src/lxml/dtd.pxi":120
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.atype
- * if type == tree.XML_ATTRIBUTE_CDATA: # <<<<<<<<<<<<<<
- * return "cdata"
- * elif type == tree.XML_ATTRIBUTE_ID:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.atype
+ * if type == tree.XML_ATTRIBUTE_CDATA: # <<<<<<<<<<<<<<
+ * return "cdata"
+ * elif type == tree.XML_ATTRIBUTE_ID:
*/
switch (__pyx_v_type) {
case XML_ATTRIBUTE_CDATA:
/* "src/lxml/dtd.pxi":121
- * cdef int type = self._c_node.atype
- * if type == tree.XML_ATTRIBUTE_CDATA:
- * return "cdata" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_ID:
- * return "id"
+ * cdef int type = self._c_node.atype
+ * if type == tree.XML_ATTRIBUTE_CDATA:
+ * return "cdata" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_ID:
+ * return "id"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_cdata);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":120
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.atype
- * if type == tree.XML_ATTRIBUTE_CDATA: # <<<<<<<<<<<<<<
- * return "cdata"
- * elif type == tree.XML_ATTRIBUTE_ID:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.atype
+ * if type == tree.XML_ATTRIBUTE_CDATA: # <<<<<<<<<<<<<<
+ * return "cdata"
+ * elif type == tree.XML_ATTRIBUTE_ID:
*/
break;
case XML_ATTRIBUTE_ID:
/* "src/lxml/dtd.pxi":123
- * return "cdata"
- * elif type == tree.XML_ATTRIBUTE_ID:
- * return "id" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_IDREF:
- * return "idref"
+ * return "cdata"
+ * elif type == tree.XML_ATTRIBUTE_ID:
+ * return "id" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_IDREF:
+ * return "idref"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_id);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":122
- * if type == tree.XML_ATTRIBUTE_CDATA:
- * return "cdata"
- * elif type == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
- * return "id"
- * elif type == tree.XML_ATTRIBUTE_IDREF:
+ * if type == tree.XML_ATTRIBUTE_CDATA:
+ * return "cdata"
+ * elif type == tree.XML_ATTRIBUTE_ID: # <<<<<<<<<<<<<<
+ * return "id"
+ * elif type == tree.XML_ATTRIBUTE_IDREF:
*/
break;
case XML_ATTRIBUTE_IDREF:
/* "src/lxml/dtd.pxi":125
- * return "id"
- * elif type == tree.XML_ATTRIBUTE_IDREF:
- * return "idref" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_IDREFS:
- * return "idrefs"
+ * return "id"
+ * elif type == tree.XML_ATTRIBUTE_IDREF:
+ * return "idref" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_IDREFS:
+ * return "idrefs"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_idref);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":124
- * elif type == tree.XML_ATTRIBUTE_ID:
- * return "id"
- * elif type == tree.XML_ATTRIBUTE_IDREF: # <<<<<<<<<<<<<<
- * return "idref"
- * elif type == tree.XML_ATTRIBUTE_IDREFS:
+ * elif type == tree.XML_ATTRIBUTE_ID:
+ * return "id"
+ * elif type == tree.XML_ATTRIBUTE_IDREF: # <<<<<<<<<<<<<<
+ * return "idref"
+ * elif type == tree.XML_ATTRIBUTE_IDREFS:
*/
break;
case XML_ATTRIBUTE_IDREFS:
/* "src/lxml/dtd.pxi":127
- * return "idref"
- * elif type == tree.XML_ATTRIBUTE_IDREFS:
- * return "idrefs" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_ENTITY:
- * return "entity"
+ * return "idref"
+ * elif type == tree.XML_ATTRIBUTE_IDREFS:
+ * return "idrefs" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_ENTITY:
+ * return "entity"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_idrefs);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":126
- * elif type == tree.XML_ATTRIBUTE_IDREF:
- * return "idref"
- * elif type == tree.XML_ATTRIBUTE_IDREFS: # <<<<<<<<<<<<<<
- * return "idrefs"
- * elif type == tree.XML_ATTRIBUTE_ENTITY:
+ * elif type == tree.XML_ATTRIBUTE_IDREF:
+ * return "idref"
+ * elif type == tree.XML_ATTRIBUTE_IDREFS: # <<<<<<<<<<<<<<
+ * return "idrefs"
+ * elif type == tree.XML_ATTRIBUTE_ENTITY:
*/
break;
case XML_ATTRIBUTE_ENTITY:
/* "src/lxml/dtd.pxi":129
- * return "idrefs"
- * elif type == tree.XML_ATTRIBUTE_ENTITY:
- * return "entity" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_ENTITIES:
- * return "entities"
+ * return "idrefs"
+ * elif type == tree.XML_ATTRIBUTE_ENTITY:
+ * return "entity" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_ENTITIES:
+ * return "entities"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_entity);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":128
- * elif type == tree.XML_ATTRIBUTE_IDREFS:
- * return "idrefs"
- * elif type == tree.XML_ATTRIBUTE_ENTITY: # <<<<<<<<<<<<<<
- * return "entity"
- * elif type == tree.XML_ATTRIBUTE_ENTITIES:
+ * elif type == tree.XML_ATTRIBUTE_IDREFS:
+ * return "idrefs"
+ * elif type == tree.XML_ATTRIBUTE_ENTITY: # <<<<<<<<<<<<<<
+ * return "entity"
+ * elif type == tree.XML_ATTRIBUTE_ENTITIES:
*/
break;
case XML_ATTRIBUTE_ENTITIES:
/* "src/lxml/dtd.pxi":131
- * return "entity"
- * elif type == tree.XML_ATTRIBUTE_ENTITIES:
- * return "entities" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
- * return "nmtoken"
+ * return "entity"
+ * elif type == tree.XML_ATTRIBUTE_ENTITIES:
+ * return "entities" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
+ * return "nmtoken"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_entities);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":130
- * elif type == tree.XML_ATTRIBUTE_ENTITY:
- * return "entity"
- * elif type == tree.XML_ATTRIBUTE_ENTITIES: # <<<<<<<<<<<<<<
- * return "entities"
- * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
+ * elif type == tree.XML_ATTRIBUTE_ENTITY:
+ * return "entity"
+ * elif type == tree.XML_ATTRIBUTE_ENTITIES: # <<<<<<<<<<<<<<
+ * return "entities"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
*/
break;
case XML_ATTRIBUTE_NMTOKEN:
/* "src/lxml/dtd.pxi":133
- * return "entities"
- * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
- * return "nmtoken" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
- * return "nmtokens"
+ * return "entities"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
+ * return "nmtoken" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
+ * return "nmtokens"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_nmtoken);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":132
- * elif type == tree.XML_ATTRIBUTE_ENTITIES:
- * return "entities"
- * elif type == tree.XML_ATTRIBUTE_NMTOKEN: # <<<<<<<<<<<<<<
- * return "nmtoken"
- * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
+ * elif type == tree.XML_ATTRIBUTE_ENTITIES:
+ * return "entities"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKEN: # <<<<<<<<<<<<<<
+ * return "nmtoken"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
*/
break;
case XML_ATTRIBUTE_NMTOKENS:
/* "src/lxml/dtd.pxi":135
- * return "nmtoken"
- * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
- * return "nmtokens" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
- * return "enumeration"
+ * return "nmtoken"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
+ * return "nmtokens" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
+ * return "enumeration"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_nmtokens);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":134
- * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
- * return "nmtoken"
- * elif type == tree.XML_ATTRIBUTE_NMTOKENS: # <<<<<<<<<<<<<<
- * return "nmtokens"
- * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
+ * elif type == tree.XML_ATTRIBUTE_NMTOKEN:
+ * return "nmtoken"
+ * elif type == tree.XML_ATTRIBUTE_NMTOKENS: # <<<<<<<<<<<<<<
+ * return "nmtokens"
+ * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
*/
break;
case XML_ATTRIBUTE_ENUMERATION:
/* "src/lxml/dtd.pxi":137
- * return "nmtokens"
- * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
- * return "enumeration" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ATTRIBUTE_NOTATION:
- * return "notation"
+ * return "nmtokens"
+ * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
+ * return "enumeration" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ATTRIBUTE_NOTATION:
+ * return "notation"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_enumeration);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":136
- * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
- * return "nmtokens"
- * elif type == tree.XML_ATTRIBUTE_ENUMERATION: # <<<<<<<<<<<<<<
- * return "enumeration"
- * elif type == tree.XML_ATTRIBUTE_NOTATION:
+ * elif type == tree.XML_ATTRIBUTE_NMTOKENS:
+ * return "nmtokens"
+ * elif type == tree.XML_ATTRIBUTE_ENUMERATION: # <<<<<<<<<<<<<<
+ * return "enumeration"
+ * elif type == tree.XML_ATTRIBUTE_NOTATION:
*/
break;
case XML_ATTRIBUTE_NOTATION:
/* "src/lxml/dtd.pxi":139
- * return "enumeration"
- * elif type == tree.XML_ATTRIBUTE_NOTATION:
- * return "notation" # <<<<<<<<<<<<<<
- * else:
- * return None
+ * return "enumeration"
+ * elif type == tree.XML_ATTRIBUTE_NOTATION:
+ * return "notation" # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_notation);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":138
- * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
- * return "enumeration"
- * elif type == tree.XML_ATTRIBUTE_NOTATION: # <<<<<<<<<<<<<<
- * return "notation"
- * else:
+ * elif type == tree.XML_ATTRIBUTE_ENUMERATION:
+ * return "enumeration"
+ * elif type == tree.XML_ATTRIBUTE_NOTATION: # <<<<<<<<<<<<<<
+ * return "notation"
+ * else:
*/
break;
default:
/* "src/lxml/dtd.pxi":141
- * return "notation"
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return "notation"
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property default:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "src/lxml/dtd.pxi":117
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.atype
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.atype
*/
/* function exit code */
/* "src/lxml/dtd.pxi":144
*
- * property default:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int default = self._c_node.def_
+ * @property
+ * def default(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int default = self._c_node.def_
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":145
- * property default:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef int default = self._c_node.def_
- * if default == tree.XML_ATTRIBUTE_NONE:
+ * @property
+ * def default(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef int default = self._c_node.def_
+ * if default == tree.XML_ATTRIBUTE_NONE:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 145, __pyx_L1_error)
/* "src/lxml/dtd.pxi":146
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef int default = self._c_node.def_ # <<<<<<<<<<<<<<
- * if default == tree.XML_ATTRIBUTE_NONE:
- * return "none"
+ * def default(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int default = self._c_node.def_ # <<<<<<<<<<<<<<
+ * if default == tree.XML_ATTRIBUTE_NONE:
+ * return "none"
*/
__pyx_t_2 = __pyx_v_self->_c_node->def;
__pyx_v_default = __pyx_t_2;
/* "src/lxml/dtd.pxi":147
- * _assertValidDTDNode(self, self._c_node)
- * cdef int default = self._c_node.def_
- * if default == tree.XML_ATTRIBUTE_NONE: # <<<<<<<<<<<<<<
- * return "none"
- * elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int default = self._c_node.def_
+ * if default == tree.XML_ATTRIBUTE_NONE: # <<<<<<<<<<<<<<
+ * return "none"
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED:
*/
switch (__pyx_v_default) {
case XML_ATTRIBUTE_NONE:
/* "src/lxml/dtd.pxi":148
- * cdef int default = self._c_node.def_
- * if default == tree.XML_ATTRIBUTE_NONE:
- * return "none" # <<<<<<<<<<<<<<
- * elif default == tree.XML_ATTRIBUTE_REQUIRED:
- * return "required"
+ * cdef int default = self._c_node.def_
+ * if default == tree.XML_ATTRIBUTE_NONE:
+ * return "none" # <<<<<<<<<<<<<<
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ * return "required"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_none);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":147
- * _assertValidDTDNode(self, self._c_node)
- * cdef int default = self._c_node.def_
- * if default == tree.XML_ATTRIBUTE_NONE: # <<<<<<<<<<<<<<
- * return "none"
- * elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int default = self._c_node.def_
+ * if default == tree.XML_ATTRIBUTE_NONE: # <<<<<<<<<<<<<<
+ * return "none"
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED:
*/
break;
case XML_ATTRIBUTE_REQUIRED:
/* "src/lxml/dtd.pxi":150
- * return "none"
- * elif default == tree.XML_ATTRIBUTE_REQUIRED:
- * return "required" # <<<<<<<<<<<<<<
- * elif default == tree.XML_ATTRIBUTE_IMPLIED:
- * return "implied"
+ * return "none"
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ * return "required" # <<<<<<<<<<<<<<
+ * elif default == tree.XML_ATTRIBUTE_IMPLIED:
+ * return "implied"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_required);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":149
- * if default == tree.XML_ATTRIBUTE_NONE:
- * return "none"
- * elif default == tree.XML_ATTRIBUTE_REQUIRED: # <<<<<<<<<<<<<<
- * return "required"
- * elif default == tree.XML_ATTRIBUTE_IMPLIED:
+ * if default == tree.XML_ATTRIBUTE_NONE:
+ * return "none"
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED: # <<<<<<<<<<<<<<
+ * return "required"
+ * elif default == tree.XML_ATTRIBUTE_IMPLIED:
*/
break;
case XML_ATTRIBUTE_IMPLIED:
/* "src/lxml/dtd.pxi":152
- * return "required"
- * elif default == tree.XML_ATTRIBUTE_IMPLIED:
- * return "implied" # <<<<<<<<<<<<<<
- * elif default == tree.XML_ATTRIBUTE_FIXED:
- * return "fixed"
+ * return "required"
+ * elif default == tree.XML_ATTRIBUTE_IMPLIED:
+ * return "implied" # <<<<<<<<<<<<<<
+ * elif default == tree.XML_ATTRIBUTE_FIXED:
+ * return "fixed"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_implied);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":151
- * elif default == tree.XML_ATTRIBUTE_REQUIRED:
- * return "required"
- * elif default == tree.XML_ATTRIBUTE_IMPLIED: # <<<<<<<<<<<<<<
- * return "implied"
- * elif default == tree.XML_ATTRIBUTE_FIXED:
+ * elif default == tree.XML_ATTRIBUTE_REQUIRED:
+ * return "required"
+ * elif default == tree.XML_ATTRIBUTE_IMPLIED: # <<<<<<<<<<<<<<
+ * return "implied"
+ * elif default == tree.XML_ATTRIBUTE_FIXED:
*/
break;
case XML_ATTRIBUTE_FIXED:
/* "src/lxml/dtd.pxi":154
- * return "implied"
- * elif default == tree.XML_ATTRIBUTE_FIXED:
- * return "fixed" # <<<<<<<<<<<<<<
- * else:
- * return None
+ * return "implied"
+ * elif default == tree.XML_ATTRIBUTE_FIXED:
+ * return "fixed" # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_fixed);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":153
- * elif default == tree.XML_ATTRIBUTE_IMPLIED:
- * return "implied"
- * elif default == tree.XML_ATTRIBUTE_FIXED: # <<<<<<<<<<<<<<
- * return "fixed"
- * else:
+ * elif default == tree.XML_ATTRIBUTE_IMPLIED:
+ * return "implied"
+ * elif default == tree.XML_ATTRIBUTE_FIXED: # <<<<<<<<<<<<<<
+ * return "fixed"
+ * else:
*/
break;
default:
/* "src/lxml/dtd.pxi":156
- * return "fixed"
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return "fixed"
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property default_value:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "src/lxml/dtd.pxi":144
*
- * property default:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int default = self._c_node.def_
+ * @property
+ * def default(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int default = self._c_node.def_
*/
/* function exit code */
/* "src/lxml/dtd.pxi":159
*
- * property default_value:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * @property
+ * def default_value(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":160
- * property default_value:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * @property
+ * def default_value(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 160, __pyx_L1_error)
/* "src/lxml/dtd.pxi":161
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None # <<<<<<<<<<<<<<
+ * def default_value(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None # <<<<<<<<<<<<<<
*
* def itervalues(self):
*/
/* "src/lxml/dtd.pxi":159
*
- * property default_value:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * @property
+ * def default_value(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*/
/* function exit code */
static PyObject *__pyx_gb_4lxml_5etree_17_DTDAttributeDecl_4generator11(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* "src/lxml/dtd.pxi":163
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* "src/lxml/dtd.pxi":163
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
* def __repr__(self):
* return "<%s.%s object name=%r prefix=%r type=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, self.prefix, self.type, id(self)) # <<<<<<<<<<<<<<
*
- * property name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 182, __pyx_L1_error)
/* "src/lxml/dtd.pxi":185
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":186
- * property name:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 186, __pyx_L1_error)
/* "src/lxml/dtd.pxi":187
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
*
- * property prefix:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
/* "src/lxml/dtd.pxi":185
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":190
*
- * property prefix:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":191
- * property prefix:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 191, __pyx_L1_error)
/* "src/lxml/dtd.pxi":192
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None # <<<<<<<<<<<<<<
+ * def prefix(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None # <<<<<<<<<<<<<<
*
- * property type:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->prefix != NULL) != 0)) {
/* "src/lxml/dtd.pxi":190
*
- * property prefix:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
+ * @property
+ * def prefix(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.prefix) if self._c_node.prefix is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":195
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.etype
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.etype
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":196
- * property type:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef int type = self._c_node.etype
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
+ * @property
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef int type = self._c_node.etype
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 196, __pyx_L1_error)
/* "src/lxml/dtd.pxi":197
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.etype # <<<<<<<<<<<<<<
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
- * return "undefined"
+ * def type(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.etype # <<<<<<<<<<<<<<
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
+ * return "undefined"
*/
__pyx_t_2 = __pyx_v_self->_c_node->etype;
__pyx_v_type = __pyx_t_2;
/* "src/lxml/dtd.pxi":198
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.etype
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED: # <<<<<<<<<<<<<<
- * return "undefined"
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.etype
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED: # <<<<<<<<<<<<<<
+ * return "undefined"
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
*/
switch (__pyx_v_type) {
case XML_ELEMENT_TYPE_UNDEFINED:
/* "src/lxml/dtd.pxi":199
- * cdef int type = self._c_node.etype
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
- * return "undefined" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
- * return "empty"
+ * cdef int type = self._c_node.etype
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
+ * return "undefined" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ * return "empty"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_undefined);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":198
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.etype
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED: # <<<<<<<<<<<<<<
- * return "undefined"
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.etype
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED: # <<<<<<<<<<<<<<
+ * return "undefined"
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
*/
break;
case XML_ELEMENT_TYPE_EMPTY:
/* "src/lxml/dtd.pxi":201
- * return "undefined"
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
- * return "empty" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_TYPE_ANY:
- * return "any"
+ * return "undefined"
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ * return "empty" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_TYPE_ANY:
+ * return "any"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_empty);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":200
- * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
- * return "undefined"
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY: # <<<<<<<<<<<<<<
- * return "empty"
- * elif type == tree.XML_ELEMENT_TYPE_ANY:
+ * if type == tree.XML_ELEMENT_TYPE_UNDEFINED:
+ * return "undefined"
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY: # <<<<<<<<<<<<<<
+ * return "empty"
+ * elif type == tree.XML_ELEMENT_TYPE_ANY:
*/
break;
case XML_ELEMENT_TYPE_ANY:
/* "src/lxml/dtd.pxi":203
- * return "empty"
- * elif type == tree.XML_ELEMENT_TYPE_ANY:
- * return "any" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_TYPE_MIXED:
- * return "mixed"
+ * return "empty"
+ * elif type == tree.XML_ELEMENT_TYPE_ANY:
+ * return "any" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_TYPE_MIXED:
+ * return "mixed"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_any);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":202
- * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
- * return "empty"
- * elif type == tree.XML_ELEMENT_TYPE_ANY: # <<<<<<<<<<<<<<
- * return "any"
- * elif type == tree.XML_ELEMENT_TYPE_MIXED:
+ * elif type == tree.XML_ELEMENT_TYPE_EMPTY:
+ * return "empty"
+ * elif type == tree.XML_ELEMENT_TYPE_ANY: # <<<<<<<<<<<<<<
+ * return "any"
+ * elif type == tree.XML_ELEMENT_TYPE_MIXED:
*/
break;
case XML_ELEMENT_TYPE_MIXED:
/* "src/lxml/dtd.pxi":205
- * return "any"
- * elif type == tree.XML_ELEMENT_TYPE_MIXED:
- * return "mixed" # <<<<<<<<<<<<<<
- * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
- * return "element"
+ * return "any"
+ * elif type == tree.XML_ELEMENT_TYPE_MIXED:
+ * return "mixed" # <<<<<<<<<<<<<<
+ * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
+ * return "element"
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_mixed);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":204
- * elif type == tree.XML_ELEMENT_TYPE_ANY:
- * return "any"
- * elif type == tree.XML_ELEMENT_TYPE_MIXED: # <<<<<<<<<<<<<<
- * return "mixed"
- * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
+ * elif type == tree.XML_ELEMENT_TYPE_ANY:
+ * return "any"
+ * elif type == tree.XML_ELEMENT_TYPE_MIXED: # <<<<<<<<<<<<<<
+ * return "mixed"
+ * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
*/
break;
case XML_ELEMENT_TYPE_ELEMENT:
/* "src/lxml/dtd.pxi":207
- * return "mixed"
- * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
- * return "element" # <<<<<<<<<<<<<<
- * else:
- * return None
+ * return "mixed"
+ * elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
+ * return "element" # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_n_s_element);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":206
- * elif type == tree.XML_ELEMENT_TYPE_MIXED:
- * return "mixed"
- * elif type == tree.XML_ELEMENT_TYPE_ELEMENT: # <<<<<<<<<<<<<<
- * return "element"
- * else:
+ * elif type == tree.XML_ELEMENT_TYPE_MIXED:
+ * return "mixed"
+ * elif type == tree.XML_ELEMENT_TYPE_ELEMENT: # <<<<<<<<<<<<<<
+ * return "element"
+ * else:
*/
break;
default:
/* "src/lxml/dtd.pxi":209
- * return "element"
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return "element"
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
- * property content:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "src/lxml/dtd.pxi":195
*
- * property type:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef int type = self._c_node.etype
+ * @property
+ * def type(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef int type = self._c_node.etype
*/
/* function exit code */
/* "src/lxml/dtd.pxi":212
*
- * property content:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef tree.xmlElementContent *content = self._c_node.content
+ * @property
+ * def content(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef tree.xmlElementContent *content = self._c_node.content
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":213
- * property content:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * cdef tree.xmlElementContent *content = self._c_node.content
- * if content:
+ * @property
+ * def content(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * cdef tree.xmlElementContent *content = self._c_node.content
+ * if content:
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 213, __pyx_L1_error)
/* "src/lxml/dtd.pxi":214
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * cdef tree.xmlElementContent *content = self._c_node.content # <<<<<<<<<<<<<<
- * if content:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * def content(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef tree.xmlElementContent *content = self._c_node.content # <<<<<<<<<<<<<<
+ * if content:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
*/
__pyx_t_2 = __pyx_v_self->_c_node->content;
__pyx_v_content = __pyx_t_2;
/* "src/lxml/dtd.pxi":215
- * _assertValidDTDNode(self, self._c_node)
- * cdef tree.xmlElementContent *content = self._c_node.content
- * if content: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef tree.xmlElementContent *content = self._c_node.content
+ * if content: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
__pyx_t_3 = (__pyx_v_content != 0);
if (__pyx_t_3) {
/* "src/lxml/dtd.pxi":216
- * cdef tree.xmlElementContent *content = self._c_node.content
- * if content:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
- * node._dtd = self._dtd
- * node._c_node = content
+ * cdef tree.xmlElementContent *content = self._c_node.content
+ * if content:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl) # <<<<<<<<<<<<<<
+ * node._dtd = self._dtd
+ * node._c_node = content
*/
__pyx_t_4 = ((PyObject *)__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(((PyTypeObject *)__pyx_ptype_4lxml_5etree__DTDElementContentDecl), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 216, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":217
- * if content:
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd # <<<<<<<<<<<<<<
- * node._c_node = content
- * return node
+ * if content:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd # <<<<<<<<<<<<<<
+ * node._c_node = content
+ * return node
*/
__pyx_t_5 = ((PyObject *)__pyx_v_self->_dtd);
__Pyx_INCREF(__pyx_t_5);
__pyx_t_5 = 0;
/* "src/lxml/dtd.pxi":218
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
- * node._c_node = content # <<<<<<<<<<<<<<
- * return node
- * else:
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
+ * node._c_node = content # <<<<<<<<<<<<<<
+ * return node
+ * else:
*/
__pyx_v_node->_c_node = __pyx_v_content;
/* "src/lxml/dtd.pxi":219
- * node._dtd = self._dtd
- * node._c_node = content
- * return node # <<<<<<<<<<<<<<
- * else:
- * return None
+ * node._dtd = self._dtd
+ * node._c_node = content
+ * return node # <<<<<<<<<<<<<<
+ * else:
+ * return None
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_node));
goto __pyx_L0;
/* "src/lxml/dtd.pxi":215
- * _assertValidDTDNode(self, self._c_node)
- * cdef tree.xmlElementContent *content = self._c_node.content
- * if content: # <<<<<<<<<<<<<<
- * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
- * node._dtd = self._dtd
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef tree.xmlElementContent *content = self._c_node.content
+ * if content: # <<<<<<<<<<<<<<
+ * node = <_DTDElementContentDecl>_DTDElementContentDecl.__new__(_DTDElementContentDecl)
+ * node._dtd = self._dtd
*/
}
/* "src/lxml/dtd.pxi":221
- * return node
- * else:
- * return None # <<<<<<<<<<<<<<
+ * return node
+ * else:
+ * return None # <<<<<<<<<<<<<<
*
* def iterattributes(self):
*/
/* "src/lxml/dtd.pxi":212
*
- * property content:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * cdef tree.xmlElementContent *content = self._c_node.content
+ * @property
+ * def content(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * cdef tree.xmlElementContent *content = self._c_node.content
*/
/* function exit code */
static PyObject *__pyx_gb_4lxml_5etree_15_DTDElementDecl_4generator12(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* "src/lxml/dtd.pxi":223
- * return None
+ * return None
*
* def iterattributes(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* "src/lxml/dtd.pxi":223
- * return None
+ * return None
*
* def iterattributes(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
* def __repr__(self):
* return "<%s.%s object name=%r at 0x%x>" % (self.__class__.__module__, self.__class__.__name__, self.name, id(self)) # <<<<<<<<<<<<<<
*
- * property name:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 244, __pyx_L1_error)
/* "src/lxml/dtd.pxi":247
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":248
- * property name:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 248, __pyx_L1_error)
/* "src/lxml/dtd.pxi":249
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
+ * def name(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None # <<<<<<<<<<<<<<
*
- * property orig:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
/* "src/lxml/dtd.pxi":247
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.name) if self._c_node.name is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":252
*
- * property orig:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
+ * @property
+ * def orig(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":253
- * property orig:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
+ * @property
+ * def orig(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 253, __pyx_L1_error)
/* "src/lxml/dtd.pxi":254
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None # <<<<<<<<<<<<<<
+ * def orig(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None # <<<<<<<<<<<<<<
*
- * property content:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
if (((__pyx_v_self->_c_node->orig != NULL) != 0)) {
/* "src/lxml/dtd.pxi":252
*
- * property orig:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
+ * @property
+ * def orig(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.orig) if self._c_node.orig is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":257
*
- * property content:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
+ * @property
+ * def content(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":258
- * property content:
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
- * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
+ * @property
+ * def content(self):
+ * _assertValidDTDNode(self, self._c_node) # <<<<<<<<<<<<<<
+ * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
*
*/
__pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDTDNode(((PyObject *)__pyx_v_self), __pyx_v_self->_c_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(20, 258, __pyx_L1_error)
/* "src/lxml/dtd.pxi":259
- * def __get__(self):
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.content) if self._c_node.content is not NULL else None # <<<<<<<<<<<<<<
+ * def content(self):
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.content) if self._c_node.content is not NULL else None # <<<<<<<<<<<<<<
*
*
*/
/* "src/lxml/dtd.pxi":257
*
- * property content:
- * def __get__(self): # <<<<<<<<<<<<<<
- * _assertValidDTDNode(self, self._c_node)
- * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
+ * @property
+ * def content(self): # <<<<<<<<<<<<<<
+ * _assertValidDTDNode(self, self._c_node)
+ * return funicode(self._c_node.content) if self._c_node.content is not NULL else None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":297
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":298
- * property name:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.name)
+ * @property
+ * def name(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.name)
*/
__pyx_t_1 = ((__pyx_v_self->_c_dtd == NULL) != 0);
if (__pyx_t_1) {
/* "src/lxml/dtd.pxi":299
- * def __get__(self):
- * if self._c_dtd is NULL:
- * return None # <<<<<<<<<<<<<<
- * return funicodeOrNone(self._c_dtd.name)
+ * def name(self):
+ * if self._c_dtd is NULL:
+ * return None # <<<<<<<<<<<<<<
+ * return funicodeOrNone(self._c_dtd.name)
*
*/
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":298
- * property name:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.name)
+ * @property
+ * def name(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.name)
*/
}
/* "src/lxml/dtd.pxi":300
- * if self._c_dtd is NULL:
- * return None
- * return funicodeOrNone(self._c_dtd.name) # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
+ * return funicodeOrNone(self._c_dtd.name) # <<<<<<<<<<<<<<
*
- * property external_id:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_self->_c_dtd->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 300, __pyx_L1_error)
/* "src/lxml/dtd.pxi":297
*
- * property name:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def name(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":303
*
- * property external_id:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def external_id(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":304
- * property external_id:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.ExternalID)
+ * @property
+ * def external_id(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.ExternalID)
*/
__pyx_t_1 = ((__pyx_v_self->_c_dtd == NULL) != 0);
if (__pyx_t_1) {
/* "src/lxml/dtd.pxi":305
- * def __get__(self):
- * if self._c_dtd is NULL:
- * return None # <<<<<<<<<<<<<<
- * return funicodeOrNone(self._c_dtd.ExternalID)
+ * def external_id(self):
+ * if self._c_dtd is NULL:
+ * return None # <<<<<<<<<<<<<<
+ * return funicodeOrNone(self._c_dtd.ExternalID)
*
*/
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":304
- * property external_id:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.ExternalID)
+ * @property
+ * def external_id(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.ExternalID)
*/
}
/* "src/lxml/dtd.pxi":306
- * if self._c_dtd is NULL:
- * return None
- * return funicodeOrNone(self._c_dtd.ExternalID) # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
+ * return funicodeOrNone(self._c_dtd.ExternalID) # <<<<<<<<<<<<<<
*
- * property system_url:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_self->_c_dtd->ExternalID); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 306, __pyx_L1_error)
/* "src/lxml/dtd.pxi":303
*
- * property external_id:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def external_id(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* function exit code */
/* "src/lxml/dtd.pxi":309
*
- * property system_url:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def system_url(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "src/lxml/dtd.pxi":310
- * property system_url:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * @property
+ * def system_url(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.SystemID)
*/
__pyx_t_1 = ((__pyx_v_self->_c_dtd == NULL) != 0);
if (__pyx_t_1) {
/* "src/lxml/dtd.pxi":311
- * def __get__(self):
- * if self._c_dtd is NULL:
- * return None # <<<<<<<<<<<<<<
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * def system_url(self):
+ * if self._c_dtd is NULL:
+ * return None # <<<<<<<<<<<<<<
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
*/
__Pyx_XDECREF(__pyx_r);
goto __pyx_L0;
/* "src/lxml/dtd.pxi":310
- * property system_url:
- * def __get__(self):
- * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
- * return None
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * @property
+ * def system_url(self):
+ * if self._c_dtd is NULL: # <<<<<<<<<<<<<<
+ * return None
+ * return funicodeOrNone(self._c_dtd.SystemID)
*/
}
/* "src/lxml/dtd.pxi":312
- * if self._c_dtd is NULL:
- * return None
- * return funicodeOrNone(self._c_dtd.SystemID) # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
+ * return funicodeOrNone(self._c_dtd.SystemID) # <<<<<<<<<<<<<<
*
* def iterelements(self):
*/
/* "src/lxml/dtd.pxi":309
*
- * property system_url:
- * def __get__(self): # <<<<<<<<<<<<<<
- * if self._c_dtd is NULL:
- * return None
+ * @property
+ * def system_url(self): # <<<<<<<<<<<<<<
+ * if self._c_dtd is NULL:
+ * return None
*/
/* function exit code */
static PyObject *__pyx_gb_4lxml_5etree_3DTD_4generator13(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* "src/lxml/dtd.pxi":314
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
* def iterelements(self): # <<<<<<<<<<<<<<
* cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* "src/lxml/dtd.pxi":314
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
* def iterelements(self): # <<<<<<<<<<<<<<
* cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
{(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, (char *)"The name of the error domain. See lxml.etree.ErrorDomains\n ", 0},
{(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, (char *)"The name of the error type. See lxml.etree.ErrorTypes\n ", 0},
{(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, (char *)"The name of the error level. See lxml.etree.ErrorLevels\n ", 0},
- {(char *)"message", __pyx_getprop_4lxml_5etree_9_LogEntry_message, 0, (char *)0, 0},
- {(char *)"filename", __pyx_getprop_4lxml_5etree_9_LogEntry_filename, 0, (char *)0, 0},
+ {(char *)"message", __pyx_getprop_4lxml_5etree_9_LogEntry_message, 0, (char *)"The log message string.\n ", 0},
+ {(char *)"filename", __pyx_getprop_4lxml_5etree_9_LogEntry_filename, 0, (char *)"The file path where the report originated, if any.\n ", 0},
{(char *)"path", __pyx_getprop_4lxml_5etree_9_LogEntry_path, 0, (char *)"The XPath for the node where the error was detected.\n ", 0},
{(char *)"domain", __pyx_getprop_4lxml_5etree_9_LogEntry_domain, 0, (char *)0, 0},
{(char *)"type", __pyx_getprop_4lxml_5etree_9_LogEntry_type, 0, (char *)0, 0},
static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyProxy[] = {
{(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, (char *)"Element tag\n ", 0},
- {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, (char *)"Text before the first subelement. This is either a string or \n the value None, if there was no text.\n ", 0},
+ {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, (char *)"Text before the first subelement. This is either a string or\n the value None, if there was no text.\n ", 0},
{(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, (char *)"Text after this element's end tag, but before the next sibling\n element's start tag. This is either a string or the value None, if\n there was no text.\n ", 0},
{(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, (char *)"Original line number as found by the parser or None if unknown.\n ", 0},
{0, 0, 0, 0, 0}
{&__pyx_n_s_XMLSyntaxError, __pyx_k_XMLSyntaxError, sizeof(__pyx_k_XMLSyntaxError), 0, 0, 1, 1},
{&__pyx_n_s_XMLTreeBuilder, __pyx_k_XMLTreeBuilder, sizeof(__pyx_k_XMLTreeBuilder), 0, 0, 1, 1},
{&__pyx_kp_s_XML_declaration_already_written, __pyx_k_XML_declaration_already_written, sizeof(__pyx_k_XML_declaration_already_written), 0, 0, 1, 0},
- {&__pyx_kp_u_XML_line_3165, __pyx_k_XML_line_3165, sizeof(__pyx_k_XML_line_3165), 0, 1, 0, 0},
+ {&__pyx_kp_u_XML_line_3176, __pyx_k_XML_line_3176, sizeof(__pyx_k_XML_line_3176), 0, 1, 0, 0},
{&__pyx_kp_u_XML_text_parser_None_base_url_No, __pyx_k_XML_text_parser_None_base_url_No, sizeof(__pyx_k_XML_text_parser_None_base_url_No), 0, 1, 0, 0},
{&__pyx_n_u_XPATH_LOCATIONSET, __pyx_k_XPATH_LOCATIONSET, sizeof(__pyx_k_XPATH_LOCATIONSET), 0, 1, 0, 1},
{&__pyx_n_u_XPATH_POINT, __pyx_k_XPATH_POINT, sizeof(__pyx_k_XPATH_POINT), 0, 1, 0, 1},
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
__pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 91, __pyx_L1_error)
__pyx_builtin_SyntaxError = __Pyx_GetBuiltinName(__pyx_n_s_SyntaxError); if (!__pyx_builtin_SyntaxError) __PYX_ERR(0, 211, __pyx_L1_error)
- __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(1, 804, __pyx_L1_error)
+ __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(1, 808, __pyx_L1_error)
__pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(2, 18, __pyx_L1_error)
__pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(3, 435, __pyx_L1_error)
__pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 96, __pyx_L1_error)
#else
__pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(5, 1004, __pyx_L1_error)
#endif
- __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) __PYX_ERR(5, 1542, __pyx_L1_error)
- __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(5, 1560, __pyx_L1_error)
- __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 311, __pyx_L1_error)
+ __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) __PYX_ERR(5, 1544, __pyx_L1_error)
+ __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s_UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) __PYX_ERR(5, 1562, __pyx_L1_error)
+ __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 315, __pyx_L1_error)
__pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 741, __pyx_L1_error)
__pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s_FutureWarning); if (!__pyx_builtin_FutureWarning) __PYX_ERR(0, 1182, __pyx_L1_error)
- __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s_NotImplemented); if (!__pyx_builtin_NotImplemented) __PYX_ERR(0, 1843, __pyx_L1_error)
- __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(0, 2034, __pyx_L1_error)
- __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 2546, __pyx_L1_error)
+ __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s_NotImplemented); if (!__pyx_builtin_NotImplemented) __PYX_ERR(0, 1854, __pyx_L1_error)
+ __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(0, 2045, __pyx_L1_error)
+ __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 2557, __pyx_L1_error)
__pyx_builtin_ReferenceError = __Pyx_GetBuiltinName(__pyx_n_s_ReferenceError); if (!__pyx_builtin_ReferenceError) __PYX_ERR(6, 18, __pyx_L1_error)
__pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(7, 52, __pyx_L1_error)
__pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s_IOError); if (!__pyx_builtin_IOError) __PYX_ERR(2, 638, __pyx_L1_error)
__pyx_builtin_LookupError = __Pyx_GetBuiltinName(__pyx_n_s_LookupError); if (!__pyx_builtin_LookupError) __PYX_ERR(2, 823, __pyx_L1_error)
__pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(8, 701, __pyx_L1_error)
__pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(9, 632, __pyx_L1_error)
- __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 3536, __pyx_L1_error)
+ __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 3547, __pyx_L1_error)
return 0;
__pyx_L1_error:;
return -1;
__Pyx_GOTREF(__pyx_slice__8);
__Pyx_GIVEREF(__pyx_slice__8);
- /* "src/lxml/proxy.pxi":588
+ /* "src/lxml/proxy.pxi":596
* """
* if c_doc is NULL:
* raise ValueError("Illegal document provided: NULL") # <<<<<<<<<<<<<<
* if c_doc.type not in (tree.XML_DOCUMENT_NODE, tree.XML_HTML_DOCUMENT_NODE):
* doc_type = c_doc.type
*/
- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_Illegal_document_provided_NULL); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(4, 588, __pyx_L1_error)
+ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_Illegal_document_provided_NULL); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(4, 596, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__9);
__Pyx_GIVEREF(__pyx_tuple__9);
- /* "src/lxml/apihelpers.pxi":1292
+ /* "src/lxml/apihelpers.pxi":1294
* # prevent cycles
* if _isAncestorOrSame(c_node, parent._c_node):
* raise ValueError("cannot append parent to itself") # <<<<<<<<<<<<<<
* # store possible text node
* c_next = c_node.next
*/
- __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(5, 1292, __pyx_L1_error)
+ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_cannot_append_parent_to_itself); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(5, 1294, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__12);
__Pyx_GIVEREF(__pyx_tuple__12);
- /* "src/lxml/apihelpers.pxi":1346
+ /* "src/lxml/apihelpers.pxi":1348
* if element._c_node is c_node:
* return 0 # nothing to do
* raise ValueError("cannot add ancestor as sibling, please break cycle first") # <<<<<<<<<<<<<<
* # store possible text node
* c_next = c_node.next
*/
- __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_cannot_add_ancestor_as_sibling_p); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(5, 1346, __pyx_L1_error)
+ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_cannot_add_ancestor_as_sibling_p); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(5, 1348, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__13);
__Pyx_GIVEREF(__pyx_tuple__13);
- /* "src/lxml/apihelpers.pxi":1491
+ /* "src/lxml/apihelpers.pxi":1493
* raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
* if not valid:
* raise ValueError( # <<<<<<<<<<<<<<
* "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
* return utf8_string
*/
- __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(5, 1491, __pyx_L1_error)
+ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_All_strings_must_be_XML_compatib); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(5, 1493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__14);
__Pyx_GIVEREF(__pyx_tuple__14);
- /* "src/lxml/apihelpers.pxi":1546
+ /* "src/lxml/apihelpers.pxi":1548
* return filename8
* else:
* raise TypeError("Argument must be string or unicode.") # <<<<<<<<<<<<<<
*
* cdef object _decodeFilename(const_xmlChar* c_path):
*/
- __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(5, 1546, __pyx_L1_error)
+ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_Argument_must_be_string_or_unico); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(5, 1548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__15);
__Pyx_GIVEREF(__pyx_tuple__15);
- /* "src/lxml/xmlerror.pxi":595
+ /* "src/lxml/xmlerror.pxi":599
* except KeyError:
* log = (<object>thread_dict)[name] = \
* _RotatingErrorLog(__MAX_LOG_SIZE) # <<<<<<<<<<<<<<
* return log
*
*/
- __pyx_tuple__19 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 595, __pyx_L1_error)
+ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 599, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__19);
__Pyx_GIVEREF(__pyx_tuple__19);
__Pyx_GOTREF(__pyx_tuple__27);
__Pyx_GIVEREF(__pyx_tuple__27);
- /* "lxml/etree.pyx":1998
+ /* "lxml/etree.pyx":2009
* if method == 'c14n':
* if encoding is not None:
* raise ValueError("Cannot specify encoding with C14N") # <<<<<<<<<<<<<<
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N")
*/
- __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 1998, __pyx_L1_error)
+ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_Cannot_specify_encoding_with_C14); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 2009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__32);
__Pyx_GIVEREF(__pyx_tuple__32);
- /* "lxml/etree.pyx":2000
+ /* "lxml/etree.pyx":2011
* raise ValueError("Cannot specify encoding with C14N")
* if xml_declaration:
* raise ValueError("Cannot enable XML declaration in C14N") # <<<<<<<<<<<<<<
*
* _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
*/
- __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 2000, __pyx_L1_error)
+ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_Cannot_enable_XML_declaration_in); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 2011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__33);
__Pyx_GIVEREF(__pyx_tuple__33);
- /* "lxml/etree.pyx":2006
+ /* "lxml/etree.pyx":2017
* return
* if not with_comments:
* raise ValueError("Can only discard comments in C14N serialisation") # <<<<<<<<<<<<<<
* # suppress decl. in default case (purely for ElementTree compatibility)
* if xml_declaration is not None:
*/
- __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 2006, __pyx_L1_error)
+ __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_Can_only_discard_comments_in_C14); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 2017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__34);
__Pyx_GIVEREF(__pyx_tuple__34);
- /* "lxml/etree.pyx":2032
+ /* "lxml/etree.pyx":2043
* if docstring is not None and doctype is None:
* import warnings
* warnings.warn( # <<<<<<<<<<<<<<
* "The 'docstring' option is deprecated. Use 'doctype' instead.",
* DeprecationWarning)
*/
- __pyx_tuple__35 = PyTuple_Pack(2, __pyx_kp_s_The_docstring_option_is_deprecat, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 2032, __pyx_L1_error)
+ __pyx_tuple__35 = PyTuple_Pack(2, __pyx_kp_s_The_docstring_option_is_deprecat, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 2043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__35);
__Pyx_GIVEREF(__pyx_tuple__35);
- /* "lxml/etree.pyx":2198
+ /* "lxml/etree.pyx":2209
* root = self.getroot()
* if _isString(path):
* if path[:1] == "/": # <<<<<<<<<<<<<<
* path = "." + path
* return root.find(path, namespaces)
*/
- __pyx_slice__39 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__39)) __PYX_ERR(0, 2198, __pyx_L1_error)
+ __pyx_slice__39 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__39)) __PYX_ERR(0, 2209, __pyx_L1_error)
__Pyx_GOTREF(__pyx_slice__39);
__Pyx_GIVEREF(__pyx_slice__39);
- /* "lxml/etree.pyx":2944
+ /* "lxml/etree.pyx":2955
* _assertValidNode(element)
* if with_tail:
* events = (u"start", u"end") # <<<<<<<<<<<<<<
* else:
* events = (u"start",)
*/
- __pyx_tuple__42 = PyTuple_Pack(2, __pyx_n_u_start, __pyx_n_u_end); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 2944, __pyx_L1_error)
+ __pyx_tuple__42 = PyTuple_Pack(2, __pyx_n_u_start, __pyx_n_u_end); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 2955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__42);
__Pyx_GIVEREF(__pyx_tuple__42);
- /* "lxml/etree.pyx":2946
+ /* "lxml/etree.pyx":2957
* events = (u"start", u"end")
* else:
* events = (u"start",) # <<<<<<<<<<<<<<
* self._start_element = element
* self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
*/
- __pyx_tuple__43 = PyTuple_Pack(1, __pyx_n_u_start); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 2946, __pyx_L1_error)
+ __pyx_tuple__43 = PyTuple_Pack(1, __pyx_n_u_start); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 2957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__43);
__Pyx_GIVEREF(__pyx_tuple__43);
- /* "lxml/etree.pyx":3015
+ /* "lxml/etree.pyx":3026
* text = _utf8(text)
* if b'--' in text or text.endswith(b'-'):
* raise ValueError("Comment may not contain '--' or end with '-'") # <<<<<<<<<<<<<<
*
* c_doc = _newXMLDoc()
*/
- __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_s_Comment_may_not_contain_or_end_w); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 3015, __pyx_L1_error)
+ __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_s_Comment_may_not_contain_or_end_w); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 3026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__45);
__Pyx_GIVEREF(__pyx_tuple__45);
- /* "lxml/etree.pyx":3228
+ /* "lxml/etree.pyx":3239
* cdef _Document doc
* if isinstance(strings, (bytes, unicode)):
* raise ValueError("passing a single string into fromstringlist() is not" # <<<<<<<<<<<<<<
* " efficient, use fromstring() instead")
* if parser is None:
*/
- __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_s_passing_a_single_string_into_fro); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 3228, __pyx_L1_error)
+ __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_s_passing_a_single_string_into_fro); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 3239, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__48);
__Pyx_GIVEREF(__pyx_tuple__48);
*/
__pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_clear_error_log_2, 11, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(1, 11, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":187
+ /* "src/lxml/xmlerror.pxi":191
* self.last_error = last_error
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* return _BaseErrorLog(self._first_error, self.last_error)
*
*/
- __pyx_tuple__107 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(1, 187, __pyx_L1_error)
+ __pyx_tuple__107 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__107);
__Pyx_GIVEREF(__pyx_tuple__107);
- __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(1, 187, __pyx_L1_error)
+ __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(1, 191, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":193
+ /* "src/lxml/xmlerror.pxi":197
* return u''
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* pass
*
*/
- __pyx_tuple__109 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(1, 193, __pyx_L1_error)
+ __pyx_tuple__109 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__109);
__Pyx_GIVEREF(__pyx_tuple__109);
- __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(1, 193, __pyx_L1_error)
+ __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(1, 197, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":283
+ /* "src/lxml/xmlerror.pxi":287
* self._entries = entries
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Creates a shallow copy of this error log. Reuses the list of
* entries.
*/
- __pyx_tuple__111 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(1, 283, __pyx_L1_error)
+ __pyx_tuple__111 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__111);
__Pyx_GIVEREF(__pyx_tuple__111);
- __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(1, 283, __pyx_L1_error)
+ __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(1, 287, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":321
+ /* "src/lxml/xmlerror.pxi":325
* return len(self._entries) > self._offset
*
* def filter_domains(self, domains): # <<<<<<<<<<<<<<
* u"""Filter the errors by the given domains and return a new error log
* containing the matches.
*/
- __pyx_tuple__113 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_domains, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(1, 321, __pyx_L1_error)
+ __pyx_tuple__113 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_domains, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(1, 325, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__113);
__Pyx_GIVEREF(__pyx_tuple__113);
- __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_domains, 321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(1, 321, __pyx_L1_error)
+ __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_domains, 325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(1, 325, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":331
+ /* "src/lxml/xmlerror.pxi":335
* return _ListErrorLog(filtered, None, None)
*
* def filter_types(self, types): # <<<<<<<<<<<<<<
* u"""filter_types(self, types)
*
*/
- __pyx_tuple__115 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_types, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(1, 331, __pyx_L1_error)
+ __pyx_tuple__115 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_types, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(1, 335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__115);
__Pyx_GIVEREF(__pyx_tuple__115);
- __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_types, 331, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(1, 331, __pyx_L1_error)
+ __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_types, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(1, 335, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":343
+ /* "src/lxml/xmlerror.pxi":347
* return _ListErrorLog(filtered, None, None)
*
* def filter_levels(self, levels): # <<<<<<<<<<<<<<
* u"""filter_levels(self, levels)
*
*/
- __pyx_tuple__117 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_levels, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(1, 343, __pyx_L1_error)
+ __pyx_tuple__117 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_levels, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(1, 347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__117);
__Pyx_GIVEREF(__pyx_tuple__117);
- __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_levels, 343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(1, 343, __pyx_L1_error)
+ __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_levels, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(1, 347, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":355
+ /* "src/lxml/xmlerror.pxi":359
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_level(self, level): # <<<<<<<<<<<<<<
* u"""filter_from_level(self, level)
*
*/
- __pyx_tuple__119 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_level, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(1, 355, __pyx_L1_error)
+ __pyx_tuple__119 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_level, __pyx_n_s_entry, __pyx_n_s_filtered); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(1, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__119);
__Pyx_GIVEREF(__pyx_tuple__119);
- __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_level, 355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(1, 355, __pyx_L1_error)
+ __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_level, 359, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(1, 359, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":364
+ /* "src/lxml/xmlerror.pxi":368
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_fatals(self): # <<<<<<<<<<<<<<
* u"""filter_from_fatals(self)
*
*/
- __pyx_tuple__121 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(1, 364, __pyx_L1_error)
+ __pyx_tuple__121 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(1, 368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__121);
__Pyx_GIVEREF(__pyx_tuple__121);
- __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_fatals, 364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(1, 364, __pyx_L1_error)
+ __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_fatals, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(1, 368, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":371
+ /* "src/lxml/xmlerror.pxi":375
* return self.filter_from_level(ErrorLevels.FATAL)
*
* def filter_from_errors(self): # <<<<<<<<<<<<<<
* u"""filter_from_errors(self)
*
*/
- __pyx_tuple__123 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(1, 371, __pyx_L1_error)
+ __pyx_tuple__123 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(1, 375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__123);
__Pyx_GIVEREF(__pyx_tuple__123);
- __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_errors, 371, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(1, 371, __pyx_L1_error)
+ __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_errors, 375, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(1, 375, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":378
+ /* "src/lxml/xmlerror.pxi":382
* return self.filter_from_level(ErrorLevels.ERROR)
*
* def filter_from_warnings(self): # <<<<<<<<<<<<<<
* u"""filter_from_warnings(self)
*
*/
- __pyx_tuple__125 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(1, 378, __pyx_L1_error)
+ __pyx_tuple__125 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(1, 382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__125);
__Pyx_GIVEREF(__pyx_tuple__125);
- __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_warnings, 378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(1, 378, __pyx_L1_error)
+ __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_filter_from_warnings, 382, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(1, 382, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":437
+ /* "src/lxml/xmlerror.pxi":441
* return self.connect()
*
* def __exit__(self, *args): # <<<<<<<<<<<<<<
* # TODO: make this a cdef function when Cython supports it
* self.disconnect()
*/
- __pyx_tuple__127 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_args); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(1, 437, __pyx_L1_error)
+ __pyx_tuple__127 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_args); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(1, 441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__127);
__Pyx_GIVEREF(__pyx_tuple__127);
- __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_exit, 437, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(1, 437, __pyx_L1_error)
+ __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_exit, 441, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(1, 441, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":457
+ /* "src/lxml/xmlerror.pxi":461
* return 0
*
* cpdef clear(self): # <<<<<<<<<<<<<<
* self._first_error = None
* self.last_error = None
*/
- __pyx_tuple__129 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(1, 457, __pyx_L1_error)
+ __pyx_tuple__129 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__129);
__Pyx_GIVEREF(__pyx_tuple__129);
- __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_clear, 457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(1, 457, __pyx_L1_error)
+ __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_clear, 461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(1, 461, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":463
+ /* "src/lxml/xmlerror.pxi":467
* del self._entries[:]
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Creates a shallow copy of this error log and the list of entries.
* """
*/
- __pyx_tuple__131 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(1, 463, __pyx_L1_error)
+ __pyx_tuple__131 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__131);
__Pyx_GIVEREF(__pyx_tuple__131);
- __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(1, 463, __pyx_L1_error)
+ __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 467, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(1, 467, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":473
+ /* "src/lxml/xmlerror.pxi":477
* return iter(self._entries[self._offset:])
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
*/
- __pyx_tuple__133 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(1, 473, __pyx_L1_error)
+ __pyx_tuple__133 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__133);
__Pyx_GIVEREF(__pyx_tuple__133);
- __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(1, 473, __pyx_L1_error)
+ __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(1, 477, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":483
+ /* "src/lxml/xmlerror.pxi":487
* self._accepted_domains = tuple(domains)
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if entry.domain in self._accepted_domains:
* _ErrorLog.receive(self, entry)
*/
- __pyx_tuple__135 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(1, 483, __pyx_L1_error)
+ __pyx_tuple__135 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__135);
__Pyx_GIVEREF(__pyx_tuple__135);
- __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(1, 483, __pyx_L1_error)
+ __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 487, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(1, 487, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":493
+ /* "src/lxml/xmlerror.pxi":497
* self._max_len = max_len
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
*/
- __pyx_tuple__137 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(1, 493, __pyx_L1_error)
+ __pyx_tuple__137 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_entry); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__137);
__Pyx_GIVEREF(__pyx_tuple__137);
- __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(1, 493, __pyx_L1_error)
+ __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(1, 497, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":544
+ /* "src/lxml/xmlerror.pxi":548
* self._log = logger.log
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Dummy method that returns an empty error log.
* """
*/
- __pyx_tuple__139 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(1, 544, __pyx_L1_error)
+ __pyx_tuple__139 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__139);
__Pyx_GIVEREF(__pyx_tuple__139);
- __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(1, 544, __pyx_L1_error)
+ __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_copy, 548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(1, 548, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":549
+ /* "src/lxml/xmlerror.pxi":553
* return _ListErrorLog([], None, None)
*
* def log(self, log_entry, message, *args): # <<<<<<<<<<<<<<
* u"""log(self, log_entry, message, *args)
*
*/
- __pyx_tuple__141 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_log_entry, __pyx_n_s_message, __pyx_n_s_args); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(1, 549, __pyx_L1_error)
+ __pyx_tuple__141 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_log_entry, __pyx_n_s_message, __pyx_n_s_args); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(1, 553, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__141);
__Pyx_GIVEREF(__pyx_tuple__141);
- __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_log, 549, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(1, 549, __pyx_L1_error)
+ __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_log, 553, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(1, 553, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":566
+ /* "src/lxml/xmlerror.pxi":570
* )
*
* cpdef receive(self, _LogEntry log_entry): # <<<<<<<<<<<<<<
* u"""receive(self, log_entry)
*
*/
- __pyx_tuple__143 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_log_entry); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(1, 566, __pyx_L1_error)
+ __pyx_tuple__143 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_log_entry); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__143);
__Pyx_GIVEREF(__pyx_tuple__143);
- __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(1, 566, __pyx_L1_error)
+ __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_receive, 570, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(1, 570, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":616
+ /* "src/lxml/xmlerror.pxi":620
*
*
* def use_global_python_log(PyErrorLog log not None): # <<<<<<<<<<<<<<
* u"""use_global_python_log(log)
*
*/
- __pyx_tuple__145 = PyTuple_Pack(1, __pyx_n_s_log); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(1, 616, __pyx_L1_error)
+ __pyx_tuple__145 = PyTuple_Pack(1, __pyx_n_s_log); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(1, 620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__145);
__Pyx_GIVEREF(__pyx_tuple__145);
- __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_use_global_python_log, 616, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(1, 616, __pyx_L1_error)
+ __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xmlerror_pxi, __pyx_n_s_use_global_python_log, 620, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(1, 620, __pyx_L1_error)
- /* "src/lxml/xmlerror.pxi":804
+ /* "src/lxml/xmlerror.pxi":808
*
*
* class ErrorLevels(object): # <<<<<<<<<<<<<<
* u"Libxml2 error levels"
*
*/
- __pyx_tuple__147 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(1, 804, __pyx_L1_error)
+ __pyx_tuple__147 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(1, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__147);
__Pyx_GIVEREF(__pyx_tuple__147);
- /* "src/lxml/xmlerror.pxi":807
+ /* "src/lxml/xmlerror.pxi":811
* u"Libxml2 error levels"
*
* class ErrorDomains(object): # <<<<<<<<<<<<<<
* u"Libxml2 error domains"
*
*/
- __pyx_tuple__148 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(1, 807, __pyx_L1_error)
+ __pyx_tuple__148 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(1, 811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__148);
__Pyx_GIVEREF(__pyx_tuple__148);
- /* "src/lxml/xmlerror.pxi":810
+ /* "src/lxml/xmlerror.pxi":814
* u"Libxml2 error domains"
*
* class ErrorTypes(object): # <<<<<<<<<<<<<<
* u"Libxml2 error types"
*
*/
- __pyx_tuple__149 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(1, 810, __pyx_L1_error)
+ __pyx_tuple__149 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(1, 814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__149);
__Pyx_GIVEREF(__pyx_tuple__149);
- /* "src/lxml/xmlerror.pxi":813
+ /* "src/lxml/xmlerror.pxi":817
* u"Libxml2 error types"
*
* class RelaxNGErrorTypes(object): # <<<<<<<<<<<<<<
* u"Libxml2 RelaxNG error types"
*
*/
- __pyx_tuple__150 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(1, 813, __pyx_L1_error)
+ __pyx_tuple__150 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(1, 817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__150);
__Pyx_GIVEREF(__pyx_tuple__150);
__Pyx_GIVEREF(__pyx_tuple__198);
__pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_itersiblings, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(0, 1376, __pyx_L1_error)
- /* "lxml/etree.pyx":1394
+ /* "lxml/etree.pyx":1399
* return SiblingsIterator(self, tags, preceding=preceding)
*
* def iterancestors(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iterancestors(self, tag=None, *tags)
*
*/
- __pyx_tuple__200 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(0, 1394, __pyx_L1_error)
+ __pyx_tuple__200 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(0, 1399, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__200);
__Pyx_GIVEREF(__pyx_tuple__200);
- __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterancestors, 1394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(0, 1394, __pyx_L1_error)
+ __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterancestors, 1399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(0, 1399, __pyx_L1_error)
- /* "lxml/etree.pyx":1406
+ /* "lxml/etree.pyx":1413
* return AncestorsIterator(self, tags)
*
* def iterdescendants(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iterdescendants(self, tag=None, *tags)
*
*/
- __pyx_tuple__202 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__202)) __PYX_ERR(0, 1406, __pyx_L1_error)
+ __pyx_tuple__202 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__202)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__202);
__Pyx_GIVEREF(__pyx_tuple__202);
- __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterdescendants, 1406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(0, 1406, __pyx_L1_error)
+ __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterdescendants, 1413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(0, 1413, __pyx_L1_error)
- /* "lxml/etree.pyx":1419
+ /* "lxml/etree.pyx":1428
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*
* def iterchildren(self, tag=None, *tags, reversed=False): # <<<<<<<<<<<<<<
* u"""iterchildren(self, tag=None, *tags, reversed=False)
*
*/
- __pyx_tuple__204 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_reversed, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 1419, __pyx_L1_error)
+ __pyx_tuple__204 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_reversed, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__204);
__Pyx_GIVEREF(__pyx_tuple__204);
- __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterchildren, 1419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 1419, __pyx_L1_error)
+ __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterchildren, 1428, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 1428, __pyx_L1_error)
- /* "lxml/etree.pyx":1432
+ /* "lxml/etree.pyx":1443
* return ElementChildIterator(self, tags, reversed=reversed)
*
* def getroottree(self): # <<<<<<<<<<<<<<
* u"""getroottree(self)
*
*/
- __pyx_tuple__206 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(0, 1432, __pyx_L1_error)
+ __pyx_tuple__206 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(0, 1443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__206);
__Pyx_GIVEREF(__pyx_tuple__206);
- __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getroottree, 1432, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(0, 1432, __pyx_L1_error)
+ __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getroottree, 1443, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(0, 1443, __pyx_L1_error)
- /* "lxml/etree.pyx":1444
+ /* "lxml/etree.pyx":1455
* return _elementTreeFactory(self._doc, None)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""getiterator(self, tag=None, *tags)
*
*/
- __pyx_tuple__208 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(0, 1444, __pyx_L1_error)
+ __pyx_tuple__208 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__208);
__Pyx_GIVEREF(__pyx_tuple__208);
- __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getiterator, 1444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(0, 1444, __pyx_L1_error)
+ __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getiterator, 1455, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(0, 1455, __pyx_L1_error)
- /* "lxml/etree.pyx":1466
+ /* "lxml/etree.pyx":1477
* return ElementDepthFirstIterator(self, tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iter(self, tag=None, *tags)
*
*/
- __pyx_tuple__210 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 1466, __pyx_L1_error)
+ __pyx_tuple__210 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 1477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__210);
__Pyx_GIVEREF(__pyx_tuple__210);
- __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iter, 1466, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 1466, __pyx_L1_error)
+ __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iter, 1477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 1477, __pyx_L1_error)
- /* "lxml/etree.pyx":1490
+ /* "lxml/etree.pyx":1501
* return ElementDepthFirstIterator(self, tags)
*
* def itertext(self, tag=None, *tags, with_tail=True): # <<<<<<<<<<<<<<
* u"""itertext(self, tag=None, *tags, with_tail=True)
*
*/
- __pyx_tuple__212 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_with_tail, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__212)) __PYX_ERR(0, 1490, __pyx_L1_error)
+ __pyx_tuple__212 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_with_tail, __pyx_n_s_tags); if (unlikely(!__pyx_tuple__212)) __PYX_ERR(0, 1501, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__212);
__Pyx_GIVEREF(__pyx_tuple__212);
- __pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_itertext, 1490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(0, 1490, __pyx_L1_error)
+ __pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_itertext, 1501, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(0, 1501, __pyx_L1_error)
- /* "lxml/etree.pyx":1505
+ /* "lxml/etree.pyx":1516
* return ElementTextIterator(self, tags, with_tail=with_tail)
*
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
* u"""makeelement(self, _tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_tuple__214 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__214)) __PYX_ERR(0, 1505, __pyx_L1_error)
+ __pyx_tuple__214 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__214)) __PYX_ERR(0, 1516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__214);
__Pyx_GIVEREF(__pyx_tuple__214);
- __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_makeelement, 1505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(0, 1505, __pyx_L1_error)
+ __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_makeelement, 1516, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(0, 1516, __pyx_L1_error)
- /* "lxml/etree.pyx":1514
+ /* "lxml/etree.pyx":1525
* attrib, nsmap, _extra)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""find(self, path, namespaces=None)
*
*/
- __pyx_tuple__216 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__216)) __PYX_ERR(0, 1514, __pyx_L1_error)
+ __pyx_tuple__216 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__216)) __PYX_ERR(0, 1525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__216);
__Pyx_GIVEREF(__pyx_tuple__216);
- __pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_find, 1514, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(0, 1514, __pyx_L1_error)
+ __pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_find, 1525, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(0, 1525, __pyx_L1_error)
- /* "lxml/etree.pyx":1527
+ /* "lxml/etree.pyx":1538
* return _elementpath.find(self, path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
* u"""findtext(self, path, default=None, namespaces=None)
*
*/
- __pyx_tuple__218 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_default, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__218)) __PYX_ERR(0, 1527, __pyx_L1_error)
+ __pyx_tuple__218 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_default, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__218)) __PYX_ERR(0, 1538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__218);
__Pyx_GIVEREF(__pyx_tuple__218);
- __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findtext, 1527, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(0, 1527, __pyx_L1_error)
+ __pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findtext, 1538, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(0, 1538, __pyx_L1_error)
- /* "lxml/etree.pyx":1540
+ /* "lxml/etree.pyx":1551
* return _elementpath.findtext(self, path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""findall(self, path, namespaces=None)
*
*/
- __pyx_tuple__220 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__220)) __PYX_ERR(0, 1540, __pyx_L1_error)
+ __pyx_tuple__220 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__220)) __PYX_ERR(0, 1551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__220);
__Pyx_GIVEREF(__pyx_tuple__220);
- __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findall, 1540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(0, 1540, __pyx_L1_error)
+ __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findall, 1551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(0, 1551, __pyx_L1_error)
- /* "lxml/etree.pyx":1553
+ /* "lxml/etree.pyx":1564
* return _elementpath.findall(self, path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""iterfind(self, path, namespaces=None)
*
*/
- __pyx_tuple__222 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(0, 1553, __pyx_L1_error)
+ __pyx_tuple__222 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(0, 1564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__222);
__Pyx_GIVEREF(__pyx_tuple__222);
- __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterfind, 1553, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(0, 1553, __pyx_L1_error)
+ __pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterfind, 1564, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(0, 1564, __pyx_L1_error)
- /* "lxml/etree.pyx":1566
+ /* "lxml/etree.pyx":1577
* return _elementpath.iterfind(self, path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
* smart_strings=True, **_variables):
* u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
*/
- __pyx_tuple__224 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_path_2, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_smart_strings, __pyx_n_s_variables_2, __pyx_n_s_evaluator); if (unlikely(!__pyx_tuple__224)) __PYX_ERR(0, 1566, __pyx_L1_error)
+ __pyx_tuple__224 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_path_2, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_smart_strings, __pyx_n_s_variables_2, __pyx_n_s_evaluator); if (unlikely(!__pyx_tuple__224)) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__224);
__Pyx_GIVEREF(__pyx_tuple__224);
- __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(2, 3, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xpath, 1566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(0, 1566, __pyx_L1_error)
+ __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(2, 3, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xpath, 1577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(0, 1577, __pyx_L1_error)
- /* "lxml/etree.pyx":1577
+ /* "lxml/etree.pyx":1588
* return evaluator(_path, **_variables)
*
* def cssselect(self, expr, *, translator='xml'): # <<<<<<<<<<<<<<
* """
* Run the CSS expression on this element and its children,
*/
- __pyx_tuple__226 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_expr, __pyx_n_s_translator, __pyx_n_s_CSSSelector); if (unlikely(!__pyx_tuple__226)) __PYX_ERR(0, 1577, __pyx_L1_error)
+ __pyx_tuple__226 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_expr, __pyx_n_s_translator, __pyx_n_s_CSSSelector); if (unlikely(!__pyx_tuple__226)) __PYX_ERR(0, 1588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__226);
__Pyx_GIVEREF(__pyx_tuple__226);
- __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_cssselect, 1577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(0, 1577, __pyx_L1_error)
+ __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 1, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_cssselect, 1588, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(0, 1588, __pyx_L1_error)
- /* "lxml/etree.pyx":1627
+ /* "lxml/etree.pyx":1638
* raise TypeError, u"this element does not have children or attributes"
*
* def set(self, key, value): # <<<<<<<<<<<<<<
* u"set(self, key, value)"
* self._raiseImmutable()
*/
- __pyx_tuple__228 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 1627, __pyx_L1_error)
+ __pyx_tuple__228 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__228);
__Pyx_GIVEREF(__pyx_tuple__228);
- __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_set, 1627, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(0, 1627, __pyx_L1_error)
+ __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_set, 1638, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(0, 1638, __pyx_L1_error)
- /* "lxml/etree.pyx":1631
+ /* "lxml/etree.pyx":1642
* self._raiseImmutable()
*
* def append(self, value): # <<<<<<<<<<<<<<
* u"append(self, value)"
* self._raiseImmutable()
*/
- __pyx_tuple__230 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_value); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 1631, __pyx_L1_error)
+ __pyx_tuple__230 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_value); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 1642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__230);
__Pyx_GIVEREF(__pyx_tuple__230);
- __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_append, 1631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(0, 1631, __pyx_L1_error)
+ __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_append, 1642, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(0, 1642, __pyx_L1_error)
- /* "lxml/etree.pyx":1635
+ /* "lxml/etree.pyx":1646
* self._raiseImmutable()
*
* def insert(self, index, value): # <<<<<<<<<<<<<<
* u"insert(self, index, value)"
* self._raiseImmutable()
*/
- __pyx_tuple__232 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_index, __pyx_n_s_value); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(0, 1635, __pyx_L1_error)
+ __pyx_tuple__232 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_index, __pyx_n_s_value); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__232);
__Pyx_GIVEREF(__pyx_tuple__232);
- __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_insert, 1635, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(0, 1635, __pyx_L1_error)
+ __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_insert, 1646, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(0, 1646, __pyx_L1_error)
- /* "lxml/etree.pyx":1674
+ /* "lxml/etree.pyx":1685
* return 0
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"get(self, key, default=None)"
* return None
*/
- __pyx_tuple__234 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_tuple__234 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(0, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__234);
__Pyx_GIVEREF(__pyx_tuple__234);
- __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 1674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 1685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(0, 1685, __pyx_L1_error)
- /* "lxml/etree.pyx":1678
+ /* "lxml/etree.pyx":1689
* return None
*
* def keys(self): # <<<<<<<<<<<<<<
* u"keys(self)"
* return []
*/
- __pyx_tuple__236 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(0, 1678, __pyx_L1_error)
+ __pyx_tuple__236 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(0, 1689, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__236);
__Pyx_GIVEREF(__pyx_tuple__236);
- __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_keys, 1678, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(0, 1678, __pyx_L1_error)
+ __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_keys, 1689, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(0, 1689, __pyx_L1_error)
- /* "lxml/etree.pyx":1682
+ /* "lxml/etree.pyx":1693
* return []
*
* def items(self): # <<<<<<<<<<<<<<
* u"items(self)"
* return []
*/
- __pyx_tuple__238 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 1682, __pyx_L1_error)
+ __pyx_tuple__238 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 1693, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__238);
__Pyx_GIVEREF(__pyx_tuple__238);
- __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_items, 1682, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(0, 1682, __pyx_L1_error)
+ __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_items, 1693, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(0, 1693, __pyx_L1_error)
- /* "lxml/etree.pyx":1686
+ /* "lxml/etree.pyx":1697
* return []
*
* def values(self): # <<<<<<<<<<<<<<
* u"values(self)"
* return []
*/
- __pyx_tuple__240 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(0, 1686, __pyx_L1_error)
+ __pyx_tuple__240 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(0, 1697, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__240);
__Pyx_GIVEREF(__pyx_tuple__240);
- __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__240, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_values, 1686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(0, 1686, __pyx_L1_error)
+ __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__240, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_values, 1697, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(0, 1697, __pyx_L1_error)
- /* "lxml/etree.pyx":1723
+ /* "lxml/etree.pyx":1734
* return "<?%s?>" % strrepr(self.target)
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""get(self, key, default=None)
*
*/
- __pyx_tuple__242 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__242)) __PYX_ERR(0, 1723, __pyx_L1_error)
+ __pyx_tuple__242 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__242)) __PYX_ERR(0, 1734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__242);
__Pyx_GIVEREF(__pyx_tuple__242);
- __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 1723, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(0, 1723, __pyx_L1_error)
+ __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__242, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 1734, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(0, 1734, __pyx_L1_error)
- /* "lxml/etree.pyx":1867
+ /* "lxml/etree.pyx":1878
* return 0
*
* def parse(self, source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(self, source, parser=None, base_url=None)
*
*/
- __pyx_tuple__244 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(0, 1867, __pyx_L1_error)
+ __pyx_tuple__244 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(0, 1878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__244);
__Pyx_GIVEREF(__pyx_tuple__244);
- __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_parse, 1867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(0, 1867, __pyx_L1_error)
+ __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__244, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_parse, 1878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(0, 1878, __pyx_L1_error)
- /* "lxml/etree.pyx":1883
+ /* "lxml/etree.pyx":1894
* return self._context_node
*
* def _setroot(self, _Element root not None): # <<<<<<<<<<<<<<
* u"""_setroot(self, root)
*
*/
- __pyx_tuple__246 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_root); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(0, 1883, __pyx_L1_error)
+ __pyx_tuple__246 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_root); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(0, 1894, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__246);
__Pyx_GIVEREF(__pyx_tuple__246);
- __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__246, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_setroot, 1883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(0, 1883, __pyx_L1_error)
+ __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__246, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_setroot, 1894, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(0, 1894, __pyx_L1_error)
- /* "lxml/etree.pyx":1894
+ /* "lxml/etree.pyx":1905
* self._doc = None
*
* def getroot(self): # <<<<<<<<<<<<<<
* u"""getroot(self)
*
*/
- __pyx_tuple__248 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(0, 1894, __pyx_L1_error)
+ __pyx_tuple__248 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__248);
__Pyx_GIVEREF(__pyx_tuple__248);
- __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__248, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getroot, 1894, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(0, 1894, __pyx_L1_error)
+ __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__248, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getroot, 1905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(0, 1905, __pyx_L1_error)
- /* "lxml/etree.pyx":1901
+ /* "lxml/etree.pyx":1912
* return self._context_node
*
* def __copy__(self): # <<<<<<<<<<<<<<
* return _elementTreeFactory(self._doc, self._context_node)
*
*/
- __pyx_tuple__250 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__250)) __PYX_ERR(0, 1901, __pyx_L1_error)
+ __pyx_tuple__250 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__250)) __PYX_ERR(0, 1912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__250);
__Pyx_GIVEREF(__pyx_tuple__250);
- __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_copy_2, 1901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(0, 1901, __pyx_L1_error)
+ __pyx_codeobj__251 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__250, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_copy_2, 1912, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__251)) __PYX_ERR(0, 1912, __pyx_L1_error)
- /* "lxml/etree.pyx":1904
+ /* "lxml/etree.pyx":1915
* return _elementTreeFactory(self._doc, self._context_node)
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* cdef _Element root
* cdef _Document doc
*/
- __pyx_tuple__252 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_memo, __pyx_n_s_root, __pyx_n_s_doc_2, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__252)) __PYX_ERR(0, 1904, __pyx_L1_error)
+ __pyx_tuple__252 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_memo, __pyx_n_s_root, __pyx_n_s_doc_2, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__252)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__252);
__Pyx_GIVEREF(__pyx_tuple__252);
- __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__252, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_deepcopy, 1904, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(0, 1904, __pyx_L1_error)
+ __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__252, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_deepcopy, 1915, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(0, 1915, __pyx_L1_error)
- /* "lxml/etree.pyx":1944
- * return None
+ /* "lxml/etree.pyx":1955
+ * return None
*
* def write(self, file, *, encoding=None, method=u"xml", # <<<<<<<<<<<<<<
* pretty_print=False, xml_declaration=None, with_tail=True,
* standalone=None, doctype=None, compression=0,
*/
- __pyx_tuple__254 = PyTuple_Pack(17, __pyx_n_s_self, __pyx_n_s_file, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_xml_declaration, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_compression, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_docstring, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone, __pyx_n_s_warnings); if (unlikely(!__pyx_tuple__254)) __PYX_ERR(0, 1944, __pyx_L1_error)
+ __pyx_tuple__254 = PyTuple_Pack(17, __pyx_n_s_self, __pyx_n_s_file, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_xml_declaration, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_compression, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_docstring, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone, __pyx_n_s_warnings); if (unlikely(!__pyx_tuple__254)) __PYX_ERR(0, 1955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__254);
__Pyx_GIVEREF(__pyx_tuple__254);
- __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(2, 12, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__254, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_write, 1944, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(0, 1944, __pyx_L1_error)
+ __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(2, 12, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__254, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_write, 1955, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(0, 1955, __pyx_L1_error)
- /* "lxml/etree.pyx":2041
+ /* "lxml/etree.pyx":2052
* is_standalone, compression)
*
* def getpath(self, _Element element not None): # <<<<<<<<<<<<<<
* u"""getpath(self, element)
*
*/
- __pyx_tuple__256 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_root, __pyx_n_s_c_doc, __pyx_n_s_c_path, __pyx_n_s_path); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(0, 2041, __pyx_L1_error)
+ __pyx_tuple__256 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_element, __pyx_n_s_doc_2, __pyx_n_s_root, __pyx_n_s_c_doc, __pyx_n_s_c_path, __pyx_n_s_path); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(0, 2052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__256);
__Pyx_GIVEREF(__pyx_tuple__256);
- __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getpath, 2041, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(0, 2041, __pyx_L1_error)
+ __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getpath, 2052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(0, 2052, __pyx_L1_error)
- /* "lxml/etree.pyx":2079
+ /* "lxml/etree.pyx":2090
* return path
*
* def getelementpath(self, _Element element not None): # <<<<<<<<<<<<<<
* u"""getelementpath(self, element)
*
*/
- __pyx_tuple__258 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_element, __pyx_n_s_root, __pyx_n_s_count, __pyx_n_s_path, __pyx_n_s_c_element, __pyx_n_s_c_name, __pyx_n_s_c_href, __pyx_n_s_tag, __pyx_n_s_c_node); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(0, 2079, __pyx_L1_error)
+ __pyx_tuple__258 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_element, __pyx_n_s_root, __pyx_n_s_count, __pyx_n_s_path, __pyx_n_s_c_element, __pyx_n_s_c_name, __pyx_n_s_c_href, __pyx_n_s_tag, __pyx_n_s_c_node); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__258);
__Pyx_GIVEREF(__pyx_tuple__258);
- __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getelementpath, 2079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(0, 2079, __pyx_L1_error)
+ __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getelementpath, 2090, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(0, 2090, __pyx_L1_error)
- /* "lxml/etree.pyx":2143
+ /* "lxml/etree.pyx":2154
* return '/'.join(path)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""getiterator(self, *tags, tag=None)
*
*/
- __pyx_tuple__260 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags, __pyx_n_s_root); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(0, 2143, __pyx_L1_error)
+ __pyx_tuple__260 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags, __pyx_n_s_root); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(0, 2154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__260);
__Pyx_GIVEREF(__pyx_tuple__260);
- __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getiterator, 2143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(0, 2143, __pyx_L1_error)
+ __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_getiterator, 2154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(0, 2154, __pyx_L1_error)
- /* "lxml/etree.pyx":2167
+ /* "lxml/etree.pyx":2178
* return root.getiterator(*tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iter(self, tag=None, *tags)
*
*/
- __pyx_tuple__262 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags, __pyx_n_s_root); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(0, 2167, __pyx_L1_error)
+ __pyx_tuple__262 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_tag, __pyx_n_s_tags, __pyx_n_s_root); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(0, 2178, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__262);
__Pyx_GIVEREF(__pyx_tuple__262);
- __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iter, 2167, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(0, 2167, __pyx_L1_error)
+ __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iter, 2178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(0, 2178, __pyx_L1_error)
- /* "lxml/etree.pyx":2185
+ /* "lxml/etree.pyx":2196
* return root.iter(*tags)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""find(self, path, namespaces=None)
*
*/
- __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(0, 2185, __pyx_L1_error)
+ __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(0, 2196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__264);
__Pyx_GIVEREF(__pyx_tuple__264);
- __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_find, 2185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(0, 2185, __pyx_L1_error)
+ __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_find, 2196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(0, 2196, __pyx_L1_error)
- /* "lxml/etree.pyx":2202
+ /* "lxml/etree.pyx":2213
* return root.find(path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
* u"""findtext(self, path, default=None, namespaces=None)
*
*/
- __pyx_tuple__266 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_default, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(0, 2202, __pyx_L1_error)
+ __pyx_tuple__266 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_default, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(0, 2213, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__266);
__Pyx_GIVEREF(__pyx_tuple__266);
- __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findtext, 2202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(0, 2202, __pyx_L1_error)
+ __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findtext, 2213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(0, 2213, __pyx_L1_error)
- /* "lxml/etree.pyx":2219
+ /* "lxml/etree.pyx":2230
* return root.findtext(path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""findall(self, path, namespaces=None)
*
*/
- __pyx_tuple__268 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(0, 2219, __pyx_L1_error)
+ __pyx_tuple__268 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(0, 2230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__268);
__Pyx_GIVEREF(__pyx_tuple__268);
- __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__268, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findall, 2219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(0, 2219, __pyx_L1_error)
+ __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__268, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_findall, 2230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(0, 2230, __pyx_L1_error)
- /* "lxml/etree.pyx":2236
+ /* "lxml/etree.pyx":2247
* return root.findall(path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""iterfind(self, path, namespaces=None)
*
*/
- __pyx_tuple__270 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__270)) __PYX_ERR(0, 2236, __pyx_L1_error)
+ __pyx_tuple__270 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_namespaces, __pyx_n_s_root); if (unlikely(!__pyx_tuple__270)) __PYX_ERR(0, 2247, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__270);
__Pyx_GIVEREF(__pyx_tuple__270);
- __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__270, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterfind, 2236, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(0, 2236, __pyx_L1_error)
+ __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__270, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterfind, 2247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(0, 2247, __pyx_L1_error)
- /* "lxml/etree.pyx":2253
+ /* "lxml/etree.pyx":2264
* return root.iterfind(path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
* smart_strings=True, **_variables):
* u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
*/
- __pyx_tuple__272 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_path_2, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_smart_strings, __pyx_n_s_variables_2, __pyx_n_s_evaluator); if (unlikely(!__pyx_tuple__272)) __PYX_ERR(0, 2253, __pyx_L1_error)
+ __pyx_tuple__272 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_path_2, __pyx_n_s_namespaces, __pyx_n_s_extensions, __pyx_n_s_smart_strings, __pyx_n_s_variables_2, __pyx_n_s_evaluator); if (unlikely(!__pyx_tuple__272)) __PYX_ERR(0, 2264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__272);
__Pyx_GIVEREF(__pyx_tuple__272);
- __pyx_codeobj__273 = (PyObject*)__Pyx_PyCode_New(2, 3, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__272, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xpath, 2253, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__273)) __PYX_ERR(0, 2253, __pyx_L1_error)
+ __pyx_codeobj__273 = (PyObject*)__Pyx_PyCode_New(2, 3, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__272, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xpath, 2264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__273)) __PYX_ERR(0, 2264, __pyx_L1_error)
- /* "lxml/etree.pyx":2278
+ /* "lxml/etree.pyx":2289
* return evaluator(_path, **_variables)
*
* def xslt(self, _xslt, extensions=None, access_control=None, **_kw): # <<<<<<<<<<<<<<
* u"""xslt(self, _xslt, extensions=None, access_control=None, **_kw)
*
*/
- __pyx_tuple__274 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_xslt, __pyx_n_s_extensions, __pyx_n_s_access_control, __pyx_n_s_kw, __pyx_n_s_style); if (unlikely(!__pyx_tuple__274)) __PYX_ERR(0, 2278, __pyx_L1_error)
+ __pyx_tuple__274 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_xslt, __pyx_n_s_extensions, __pyx_n_s_access_control, __pyx_n_s_kw, __pyx_n_s_style); if (unlikely(!__pyx_tuple__274)) __PYX_ERR(0, 2289, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__274);
__Pyx_GIVEREF(__pyx_tuple__274);
- __pyx_codeobj__275 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__274, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xslt_3, 2278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__275)) __PYX_ERR(0, 2278, __pyx_L1_error)
+ __pyx_codeobj__275 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__274, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xslt_3, 2289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__275)) __PYX_ERR(0, 2289, __pyx_L1_error)
- /* "lxml/etree.pyx":2297
+ /* "lxml/etree.pyx":2308
* return style(self, **_kw)
*
* def relaxng(self, relaxng): # <<<<<<<<<<<<<<
* u"""relaxng(self, relaxng)
*
*/
- __pyx_tuple__276 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_relaxng, __pyx_n_s_schema); if (unlikely(!__pyx_tuple__276)) __PYX_ERR(0, 2297, __pyx_L1_error)
+ __pyx_tuple__276 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_relaxng, __pyx_n_s_schema); if (unlikely(!__pyx_tuple__276)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__276);
__Pyx_GIVEREF(__pyx_tuple__276);
- __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__276, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_relaxng, 2297, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(0, 2297, __pyx_L1_error)
+ __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__276, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_relaxng, 2308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(0, 2308, __pyx_L1_error)
- /* "lxml/etree.pyx":2315
+ /* "lxml/etree.pyx":2326
* return schema.validate(self)
*
* def xmlschema(self, xmlschema): # <<<<<<<<<<<<<<
* u"""xmlschema(self, xmlschema)
*
*/
- __pyx_tuple__278 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_xmlschema, __pyx_n_s_schema); if (unlikely(!__pyx_tuple__278)) __PYX_ERR(0, 2315, __pyx_L1_error)
+ __pyx_tuple__278 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_xmlschema, __pyx_n_s_schema); if (unlikely(!__pyx_tuple__278)) __PYX_ERR(0, 2326, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__278);
__Pyx_GIVEREF(__pyx_tuple__278);
- __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__278, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xmlschema, 2315, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(0, 2315, __pyx_L1_error)
+ __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__278, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xmlschema, 2326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(0, 2326, __pyx_L1_error)
- /* "lxml/etree.pyx":2333
+ /* "lxml/etree.pyx":2344
* return schema.validate(self)
*
* def xinclude(self): # <<<<<<<<<<<<<<
* u"""xinclude(self)
*
*/
- __pyx_tuple__280 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__280)) __PYX_ERR(0, 2333, __pyx_L1_error)
+ __pyx_tuple__280 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__280)) __PYX_ERR(0, 2344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__280);
__Pyx_GIVEREF(__pyx_tuple__280);
- __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__280, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xinclude, 2333, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(0, 2333, __pyx_L1_error)
+ __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__280, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_xinclude, 2344, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(0, 2344, __pyx_L1_error)
- /* "lxml/etree.pyx":2348
+ /* "lxml/etree.pyx":2359
* XInclude()(self._context_node)
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True, # <<<<<<<<<<<<<<
* compression=0, inclusive_ns_prefixes=None):
* u"""write_c14n(self, file, exclusive=False, with_comments=True,
*/
- __pyx_tuple__282 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_file, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_compression, __pyx_n_s_inclusive_ns_prefixes); if (unlikely(!__pyx_tuple__282)) __PYX_ERR(0, 2348, __pyx_L1_error)
+ __pyx_tuple__282 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_file, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_compression, __pyx_n_s_inclusive_ns_prefixes); if (unlikely(!__pyx_tuple__282)) __PYX_ERR(0, 2359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__282);
__Pyx_GIVEREF(__pyx_tuple__282);
- __pyx_codeobj__283 = (PyObject*)__Pyx_PyCode_New(2, 4, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__282, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_write_c14n, 2348, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__283)) __PYX_ERR(0, 2348, __pyx_L1_error)
+ __pyx_codeobj__283 = (PyObject*)__Pyx_PyCode_New(2, 4, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__282, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_write_c14n, 2359, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__283)) __PYX_ERR(0, 2359, __pyx_L1_error)
- /* "lxml/etree.pyx":2412
+ /* "lxml/etree.pyx":2423
* _delAttribute(self._element, key)
*
* def update(self, sequence_or_dict): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* if isinstance(sequence_or_dict, (dict, _Attrib)):
*/
- __pyx_tuple__284 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_sequence_or_dict, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__284)) __PYX_ERR(0, 2412, __pyx_L1_error)
+ __pyx_tuple__284 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_sequence_or_dict, __pyx_n_s_key, __pyx_n_s_value); if (unlikely(!__pyx_tuple__284)) __PYX_ERR(0, 2423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__284);
__Pyx_GIVEREF(__pyx_tuple__284);
- __pyx_codeobj__285 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__284, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_update, 2412, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __PYX_ERR(0, 2412, __pyx_L1_error)
+ __pyx_codeobj__285 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__284, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_update, 2423, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __PYX_ERR(0, 2423, __pyx_L1_error)
- /* "lxml/etree.pyx":2419
+ /* "lxml/etree.pyx":2430
* _setAttributeValue(self._element, key, value)
*
* def pop(self, key, *default): # <<<<<<<<<<<<<<
* if len(default) > 1:
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}"
*/
- __pyx_tuple__286 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default, __pyx_n_s_result); if (unlikely(!__pyx_tuple__286)) __PYX_ERR(0, 2419, __pyx_L1_error)
+ __pyx_tuple__286 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default, __pyx_n_s_result); if (unlikely(!__pyx_tuple__286)) __PYX_ERR(0, 2430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__286);
__Pyx_GIVEREF(__pyx_tuple__286);
- __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_pop, 2419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(0, 2419, __pyx_L1_error)
+ __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_pop, 2430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(0, 2430, __pyx_L1_error)
- /* "lxml/etree.pyx":2432
+ /* "lxml/etree.pyx":2443
* return result
*
* def clear(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* cdef xmlNode* c_node = self._element._c_node
*/
- __pyx_tuple__288 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_c_node); if (unlikely(!__pyx_tuple__288)) __PYX_ERR(0, 2432, __pyx_L1_error)
+ __pyx_tuple__288 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_c_node); if (unlikely(!__pyx_tuple__288)) __PYX_ERR(0, 2443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__288);
__Pyx_GIVEREF(__pyx_tuple__288);
- __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__288, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_clear, 2432, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(0, 2432, __pyx_L1_error)
+ __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__288, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_clear, 2443, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(0, 2443, __pyx_L1_error)
- /* "lxml/etree.pyx":2443
+ /* "lxml/etree.pyx":2454
* return repr(dict( _collectAttributes(self._element._c_node, 3) ))
*
* def __copy__(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_tuple__290 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__290)) __PYX_ERR(0, 2443, __pyx_L1_error)
+ __pyx_tuple__290 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__290)) __PYX_ERR(0, 2454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__290);
__Pyx_GIVEREF(__pyx_tuple__290);
- __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__290, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_copy_2, 2443, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(0, 2443, __pyx_L1_error)
+ __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__290, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_copy_2, 2454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(0, 2454, __pyx_L1_error)
- /* "lxml/etree.pyx":2447
+ /* "lxml/etree.pyx":2458
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_tuple__292 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_memo); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(0, 2447, __pyx_L1_error)
+ __pyx_tuple__292 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_memo); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(0, 2458, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__292);
__Pyx_GIVEREF(__pyx_tuple__292);
- __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_deepcopy, 2447, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(0, 2447, __pyx_L1_error)
+ __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_deepcopy, 2458, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(0, 2458, __pyx_L1_error)
- /* "lxml/etree.pyx":2477
+ /* "lxml/etree.pyx":2488
* return c
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _getAttributeValue(self._element, key, default)
*/
- __pyx_tuple__294 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(0, 2477, __pyx_L1_error)
+ __pyx_tuple__294 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_default); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(0, 2488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__294);
__Pyx_GIVEREF(__pyx_tuple__294);
- __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 2477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(0, 2477, __pyx_L1_error)
+ __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_get, 2488, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(0, 2488, __pyx_L1_error)
- /* "lxml/etree.pyx":2481
+ /* "lxml/etree.pyx":2492
* return _getAttributeValue(self._element, key, default)
*
* def keys(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 1)
*/
- __pyx_tuple__296 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(0, 2481, __pyx_L1_error)
+ __pyx_tuple__296 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(0, 2492, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__296);
__Pyx_GIVEREF(__pyx_tuple__296);
- __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_keys, 2481, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(0, 2481, __pyx_L1_error)
+ __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_keys, 2492, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(0, 2492, __pyx_L1_error)
- /* "lxml/etree.pyx":2489
+ /* "lxml/etree.pyx":2500
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def iterkeys(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 1))
*/
- __pyx_tuple__298 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(0, 2489, __pyx_L1_error)
+ __pyx_tuple__298 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(0, 2500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__298);
__Pyx_GIVEREF(__pyx_tuple__298);
- __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterkeys, 2489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(0, 2489, __pyx_L1_error)
+ __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iterkeys, 2500, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(0, 2500, __pyx_L1_error)
- /* "lxml/etree.pyx":2493
+ /* "lxml/etree.pyx":2504
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def values(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 2)
*/
- __pyx_tuple__300 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(0, 2493, __pyx_L1_error)
+ __pyx_tuple__300 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(0, 2504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__300);
__Pyx_GIVEREF(__pyx_tuple__300);
- __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_values, 2493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(0, 2493, __pyx_L1_error)
+ __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_values, 2504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(0, 2504, __pyx_L1_error)
- /* "lxml/etree.pyx":2497
+ /* "lxml/etree.pyx":2508
* return _collectAttributes(self._element._c_node, 2)
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 2))
*/
- __pyx_tuple__302 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(0, 2497, __pyx_L1_error)
+ __pyx_tuple__302 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(0, 2508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__302);
__Pyx_GIVEREF(__pyx_tuple__302);
- __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_itervalues, 2497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(0, 2497, __pyx_L1_error)
+ __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_itervalues, 2508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(0, 2508, __pyx_L1_error)
- /* "lxml/etree.pyx":2501
+ /* "lxml/etree.pyx":2512
* return iter(_collectAttributes(self._element._c_node, 2))
*
* def items(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 3)
*/
- __pyx_tuple__304 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__304)) __PYX_ERR(0, 2501, __pyx_L1_error)
+ __pyx_tuple__304 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__304)) __PYX_ERR(0, 2512, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__304);
__Pyx_GIVEREF(__pyx_tuple__304);
- __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__304, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_items, 2501, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(0, 2501, __pyx_L1_error)
+ __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__304, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_items, 2512, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(0, 2512, __pyx_L1_error)
- /* "lxml/etree.pyx":2505
+ /* "lxml/etree.pyx":2516
* return _collectAttributes(self._element._c_node, 3)
*
* def iteritems(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_tuple__306 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__306)) __PYX_ERR(0, 2505, __pyx_L1_error)
+ __pyx_tuple__306 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__306)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__306);
__Pyx_GIVEREF(__pyx_tuple__306);
- __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iteritems, 2505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(0, 2505, __pyx_L1_error)
+ __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__306, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iteritems, 2516, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(0, 2516, __pyx_L1_error)
- /* "lxml/etree.pyx":2509
+ /* "lxml/etree.pyx":2520
* return iter(_collectAttributes(self._element._c_node, 3))
*
* def has_key(self, key): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return key in self
*/
- __pyx_tuple__308 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__308)) __PYX_ERR(0, 2509, __pyx_L1_error)
+ __pyx_tuple__308 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_key); if (unlikely(!__pyx_tuple__308)) __PYX_ERR(0, 2520, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__308);
__Pyx_GIVEREF(__pyx_tuple__308);
- __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_has_key, 2509, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(0, 2509, __pyx_L1_error)
+ __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__308, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_has_key, 2520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(0, 2520, __pyx_L1_error)
- /* "lxml/etree.pyx":2986
+ /* "lxml/etree.pyx":2997
* # module-level API for ElementTree
*
* def Element(_tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
* u"""Element(_tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_tuple__310 = PyTuple_Pack(4, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__310)) __PYX_ERR(0, 2986, __pyx_L1_error)
+ __pyx_tuple__310 = PyTuple_Pack(4, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__310)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__310);
__Pyx_GIVEREF(__pyx_tuple__310);
- __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__310, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Element, 2986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(0, 2986, __pyx_L1_error)
- __pyx_tuple__312 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__312)) __PYX_ERR(0, 2986, __pyx_L1_error)
+ __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__310, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Element, 2997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(0, 2997, __pyx_L1_error)
+ __pyx_tuple__312 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__312)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__312);
__Pyx_GIVEREF(__pyx_tuple__312);
- /* "lxml/etree.pyx":3000
+ /* "lxml/etree.pyx":3011
*
*
* def Comment(text=None): # <<<<<<<<<<<<<<
* u"""Comment(text=None)
*
*/
- __pyx_tuple__313 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(0, 3000, __pyx_L1_error)
+ __pyx_tuple__313 = PyTuple_Pack(4, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(0, 3011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__313);
__Pyx_GIVEREF(__pyx_tuple__313);
- __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__313, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Comment, 3000, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(0, 3000, __pyx_L1_error)
- __pyx_tuple__315 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(0, 3000, __pyx_L1_error)
+ __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__313, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Comment, 3011, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(0, 3011, __pyx_L1_error)
+ __pyx_tuple__315 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(0, 3011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__315);
__Pyx_GIVEREF(__pyx_tuple__315);
- /* "lxml/etree.pyx":3024
+ /* "lxml/etree.pyx":3035
*
*
* def ProcessingInstruction(target, text=None): # <<<<<<<<<<<<<<
* u"""ProcessingInstruction(target, text=None)
*
*/
- __pyx_tuple__316 = PyTuple_Pack(5, __pyx_n_s_target, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__316)) __PYX_ERR(0, 3024, __pyx_L1_error)
+ __pyx_tuple__316 = PyTuple_Pack(5, __pyx_n_s_target, __pyx_n_s_text, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc); if (unlikely(!__pyx_tuple__316)) __PYX_ERR(0, 3035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__316);
__Pyx_GIVEREF(__pyx_tuple__316);
- __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_ProcessingInstruction, 3024, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(0, 3024, __pyx_L1_error)
- __pyx_tuple__318 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(0, 3024, __pyx_L1_error)
+ __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__316, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_ProcessingInstruction, 3035, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(0, 3035, __pyx_L1_error)
+ __pyx_tuple__318 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(0, 3035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__318);
__Pyx_GIVEREF(__pyx_tuple__318);
- /* "lxml/etree.pyx":3077
+ /* "lxml/etree.pyx":3088
*
*
* def Entity(name): # <<<<<<<<<<<<<<
* u"""Entity(name)
*
*/
- __pyx_tuple__319 = PyTuple_Pack(6, __pyx_n_s_name_2, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc, __pyx_n_s_name_utf, __pyx_n_s_c_name); if (unlikely(!__pyx_tuple__319)) __PYX_ERR(0, 3077, __pyx_L1_error)
+ __pyx_tuple__319 = PyTuple_Pack(6, __pyx_n_s_name_2, __pyx_n_s_doc_2, __pyx_n_s_c_node, __pyx_n_s_c_doc, __pyx_n_s_name_utf, __pyx_n_s_c_name); if (unlikely(!__pyx_tuple__319)) __PYX_ERR(0, 3088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__319);
__Pyx_GIVEREF(__pyx_tuple__319);
- __pyx_codeobj__320 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__319, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Entity, 3077, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__320)) __PYX_ERR(0, 3077, __pyx_L1_error)
+ __pyx_codeobj__320 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__319, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_Entity, 3088, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__320)) __PYX_ERR(0, 3088, __pyx_L1_error)
- /* "lxml/etree.pyx":3103
+ /* "lxml/etree.pyx":3114
*
*
* def SubElement(_Element _parent not None, _tag, # <<<<<<<<<<<<<<
* attrib=None, nsmap=None, **_extra):
* u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
*/
- __pyx_tuple__321 = PyTuple_Pack(5, __pyx_n_s_parent, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__321)) __PYX_ERR(0, 3103, __pyx_L1_error)
+ __pyx_tuple__321 = PyTuple_Pack(5, __pyx_n_s_parent, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__321)) __PYX_ERR(0, 3114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__321);
__Pyx_GIVEREF(__pyx_tuple__321);
- __pyx_codeobj__322 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__321, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_SubElement, 3103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__322)) __PYX_ERR(0, 3103, __pyx_L1_error)
- __pyx_tuple__323 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__323)) __PYX_ERR(0, 3103, __pyx_L1_error)
+ __pyx_codeobj__322 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__321, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_SubElement, 3114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__322)) __PYX_ERR(0, 3114, __pyx_L1_error)
+ __pyx_tuple__323 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__323)) __PYX_ERR(0, 3114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__323);
__Pyx_GIVEREF(__pyx_tuple__323);
- /* "lxml/etree.pyx":3113
+ /* "lxml/etree.pyx":3124
*
*
* def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""ElementTree(element=None, file=None, parser=None)
*
*/
- __pyx_tuple__324 = PyTuple_Pack(10, __pyx_n_s_element, __pyx_n_s_file, __pyx_n_s_parser, __pyx_n_s_c_next, __pyx_n_s_c_node, __pyx_n_s_c_node_copy, __pyx_n_s_c_doc, __pyx_n_s_etree, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__324)) __PYX_ERR(0, 3113, __pyx_L1_error)
+ __pyx_tuple__324 = PyTuple_Pack(10, __pyx_n_s_element, __pyx_n_s_file, __pyx_n_s_parser, __pyx_n_s_c_next, __pyx_n_s_c_node, __pyx_n_s_c_node_copy, __pyx_n_s_c_doc, __pyx_n_s_etree, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__324)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__324);
__Pyx_GIVEREF(__pyx_tuple__324);
- __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(1, 2, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__324, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_ElementTree, 3113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(0, 3113, __pyx_L1_error)
- __pyx_tuple__326 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__326)) __PYX_ERR(0, 3113, __pyx_L1_error)
+ __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(1, 2, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__324, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_ElementTree, 3124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(0, 3124, __pyx_L1_error)
+ __pyx_tuple__326 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__326)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__326);
__Pyx_GIVEREF(__pyx_tuple__326);
- /* "lxml/etree.pyx":3139
+ /* "lxml/etree.pyx":3150
*
*
* def HTML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""HTML(text, parser=None, base_url=None)
*
*/
- __pyx_tuple__327 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__327)) __PYX_ERR(0, 3139, __pyx_L1_error)
+ __pyx_tuple__327 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__327)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__327);
__Pyx_GIVEREF(__pyx_tuple__327);
- __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_HTML, 3139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(0, 3139, __pyx_L1_error)
- __pyx_tuple__329 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__329)) __PYX_ERR(0, 3139, __pyx_L1_error)
+ __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_HTML, 3150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(0, 3150, __pyx_L1_error)
+ __pyx_tuple__329 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__329)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__329);
__Pyx_GIVEREF(__pyx_tuple__329);
- /* "lxml/etree.pyx":3165
+ /* "lxml/etree.pyx":3176
*
*
* def XML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""XML(text, parser=None, base_url=None)
*
*/
- __pyx_tuple__330 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__330)) __PYX_ERR(0, 3165, __pyx_L1_error)
+ __pyx_tuple__330 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__330)) __PYX_ERR(0, 3176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__330);
__Pyx_GIVEREF(__pyx_tuple__330);
- __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__330, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_XML, 3165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(0, 3165, __pyx_L1_error)
- __pyx_tuple__332 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__332)) __PYX_ERR(0, 3165, __pyx_L1_error)
+ __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__330, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_XML, 3176, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(0, 3176, __pyx_L1_error)
+ __pyx_tuple__332 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__332)) __PYX_ERR(0, 3176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__332);
__Pyx_GIVEREF(__pyx_tuple__332);
- /* "lxml/etree.pyx":3196
+ /* "lxml/etree.pyx":3207
*
*
* def fromstring(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""fromstring(text, parser=None, base_url=None)
*
*/
- __pyx_tuple__333 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__333)) __PYX_ERR(0, 3196, __pyx_L1_error)
+ __pyx_tuple__333 = PyTuple_Pack(5, __pyx_n_s_text, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__333)) __PYX_ERR(0, 3207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__333);
__Pyx_GIVEREF(__pyx_tuple__333);
- __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__333, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_fromstring, 3196, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(0, 3196, __pyx_L1_error)
- __pyx_tuple__335 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(0, 3196, __pyx_L1_error)
+ __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__333, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_fromstring, 3207, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(0, 3207, __pyx_L1_error)
+ __pyx_tuple__335 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(0, 3207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__335);
__Pyx_GIVEREF(__pyx_tuple__335);
- /* "lxml/etree.pyx":3217
+ /* "lxml/etree.pyx":3228
*
*
* def fromstringlist(strings, _BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""fromstringlist(strings, parser=None)
*
*/
- __pyx_tuple__336 = PyTuple_Pack(5, __pyx_n_s_strings, __pyx_n_s_parser, __pyx_n_s_doc_2, __pyx_n_s_feed, __pyx_n_s_data); if (unlikely(!__pyx_tuple__336)) __PYX_ERR(0, 3217, __pyx_L1_error)
+ __pyx_tuple__336 = PyTuple_Pack(5, __pyx_n_s_strings, __pyx_n_s_parser, __pyx_n_s_doc_2, __pyx_n_s_feed, __pyx_n_s_data); if (unlikely(!__pyx_tuple__336)) __PYX_ERR(0, 3228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__336);
__Pyx_GIVEREF(__pyx_tuple__336);
- __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_fromstringlist, 3217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(0, 3217, __pyx_L1_error)
- __pyx_tuple__338 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__338)) __PYX_ERR(0, 3217, __pyx_L1_error)
+ __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__336, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_fromstringlist, 3228, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(0, 3228, __pyx_L1_error)
+ __pyx_tuple__338 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__338)) __PYX_ERR(0, 3228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__338);
__Pyx_GIVEREF(__pyx_tuple__338);
- /* "lxml/etree.pyx":3238
+ /* "lxml/etree.pyx":3249
*
*
* def iselement(element): # <<<<<<<<<<<<<<
* u"""iselement(element)
*
*/
- __pyx_tuple__339 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__339)) __PYX_ERR(0, 3238, __pyx_L1_error)
+ __pyx_tuple__339 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__339)) __PYX_ERR(0, 3249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__339);
__Pyx_GIVEREF(__pyx_tuple__339);
- __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__339, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iselement, 3238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(0, 3238, __pyx_L1_error)
+ __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__339, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_iselement, 3249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(0, 3249, __pyx_L1_error)
- /* "lxml/etree.pyx":3246
+ /* "lxml/etree.pyx":3257
*
*
* def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True): # <<<<<<<<<<<<<<
* u"""dump(elem, pretty_print=True, with_tail=True)
*
*/
- __pyx_tuple__341 = PyTuple_Pack(4, __pyx_n_s_elem, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_xml); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(0, 3246, __pyx_L1_error)
+ __pyx_tuple__341 = PyTuple_Pack(4, __pyx_n_s_elem, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_xml); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__341);
__Pyx_GIVEREF(__pyx_tuple__341);
- __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(1, 2, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_dump, 3246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(0, 3246, __pyx_L1_error)
+ __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(1, 2, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__341, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_dump, 3257, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(0, 3257, __pyx_L1_error)
- /* "lxml/etree.pyx":3259
+ /* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
*/
- __pyx_tuple__343 = PyTuple_Pack(13, __pyx_n_s_element_or_tree, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_xml_declaration, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(0, 3259, __pyx_L1_error)
+ __pyx_tuple__343 = PyTuple_Pack(13, __pyx_n_s_element_or_tree, __pyx_n_s_encoding, __pyx_n_s_method, __pyx_n_s_xml_declaration, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_standalone, __pyx_n_s_doctype, __pyx_n_s_exclusive, __pyx_n_s_with_comments, __pyx_n_s_inclusive_ns_prefixes, __pyx_n_s_write_declaration, __pyx_n_s_is_standalone); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__343);
__Pyx_GIVEREF(__pyx_tuple__343);
- __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(1, 10, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tostring, 3259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(0, 3259, __pyx_L1_error)
+ __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(1, 10, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tostring, 3270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(0, 3270, __pyx_L1_error)
- /* "lxml/etree.pyx":3352
+ /* "lxml/etree.pyx":3363
*
*
* def tostringlist(element_or_tree, *args, **kwargs): # <<<<<<<<<<<<<<
* u"""tostringlist(element_or_tree, *args, **kwargs)
*
*/
- __pyx_tuple__345 = PyTuple_Pack(3, __pyx_n_s_element_or_tree, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__345)) __PYX_ERR(0, 3352, __pyx_L1_error)
+ __pyx_tuple__345 = PyTuple_Pack(3, __pyx_n_s_element_or_tree, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__345)) __PYX_ERR(0, 3363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__345);
__Pyx_GIVEREF(__pyx_tuple__345);
- __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__345, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tostringlist, 3352, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(0, 3352, __pyx_L1_error)
+ __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__345, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tostringlist, 3363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(0, 3363, __pyx_L1_error)
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
* bint with_tail=True, doctype=None):
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
*/
- __pyx_tuple__347 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_doctype); if (unlikely(!__pyx_tuple__347)) __PYX_ERR(0, 3364, __pyx_L1_error)
+ __pyx_tuple__347 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_method, __pyx_n_s_pretty_print, __pyx_n_s_with_tail, __pyx_n_s_doctype); if (unlikely(!__pyx_tuple__347)) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__347);
__Pyx_GIVEREF(__pyx_tuple__347);
- __pyx_codeobj__348 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__347, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tounicode, 3364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(0, 3364, __pyx_L1_error)
+ __pyx_codeobj__348 = (PyObject*)__Pyx_PyCode_New(1, 4, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__347, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_tounicode, 3375, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(0, 3375, __pyx_L1_error)
- /* "lxml/etree.pyx":3398
+ /* "lxml/etree.pyx":3409
*
*
* def parse(source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(source, parser=None, base_url=None)
*
*/
- __pyx_tuple__349 = PyTuple_Pack(5, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__349)) __PYX_ERR(0, 3398, __pyx_L1_error)
+ __pyx_tuple__349 = PyTuple_Pack(5, __pyx_n_s_source, __pyx_n_s_parser, __pyx_n_s_base_url, __pyx_n_s_doc_2, __pyx_n_s_result_container); if (unlikely(!__pyx_tuple__349)) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__349);
__Pyx_GIVEREF(__pyx_tuple__349);
- __pyx_codeobj__350 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__349, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_parse, 3398, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(0, 3398, __pyx_L1_error)
- __pyx_tuple__351 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__351)) __PYX_ERR(0, 3398, __pyx_L1_error)
+ __pyx_codeobj__350 = (PyObject*)__Pyx_PyCode_New(2, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__349, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_parse, 3409, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(0, 3409, __pyx_L1_error)
+ __pyx_tuple__351 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__351)) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__351);
__Pyx_GIVEREF(__pyx_tuple__351);
- /* "lxml/etree.pyx":3430
+ /* "lxml/etree.pyx":3441
*
*
* def adopt_external_document(capsule, _BaseParser parser=None): # <<<<<<<<<<<<<<
* """adopt_external_document(capsule, parser=None)
*
*/
- __pyx_tuple__352 = PyTuple_Pack(5, __pyx_n_s_capsule, __pyx_n_s_parser, __pyx_n_s_c_doc, __pyx_n_s_is_owned, __pyx_n_s_doc_2); if (unlikely(!__pyx_tuple__352)) __PYX_ERR(0, 3430, __pyx_L1_error)
+ __pyx_tuple__352 = PyTuple_Pack(5, __pyx_n_s_capsule, __pyx_n_s_parser, __pyx_n_s_c_doc, __pyx_n_s_is_owned, __pyx_n_s_doc_2); if (unlikely(!__pyx_tuple__352)) __PYX_ERR(0, 3441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__352);
__Pyx_GIVEREF(__pyx_tuple__352);
- __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_adopt_external_document, 3430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(0, 3430, __pyx_L1_error)
- __pyx_tuple__354 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__354)) __PYX_ERR(0, 3430, __pyx_L1_error)
+ __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__352, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_adopt_external_document, 3441, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(0, 3441, __pyx_L1_error)
+ __pyx_tuple__354 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__354)) __PYX_ERR(0, 3441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__354);
__Pyx_GIVEREF(__pyx_tuple__354);
__pyx_codeobj__368 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__367, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_readonlytree_pxi, __pyx_n_s_getprevious, 235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(6, 235, __pyx_L1_error)
/* "src/lxml/readonlytree.pxi":293
- * return None
+ * return None
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""Gets an element attribute.
__pyx_codeobj__432 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__431, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_parser_pxi, __pyx_n_s_position, 23, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__432)) __PYX_ERR(2, 23, __pyx_L1_error)
/* "src/lxml/parser.pxi":961
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*
* def setElementClassLookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
__pyx_codeobj__440 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_parser_pxi, __pyx_n_s_makeelement, 999, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__440)) __PYX_ERR(2, 999, __pyx_L1_error)
/* "src/lxml/parser.pxi":1242
- * return self._getPushParserContext()._error_log.copy()
+ * return self._getPushParserContext()._error_log.copy()
*
* cpdef feed(self, data): # <<<<<<<<<<<<<<
* u"""feed(self, data)
__pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__510, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_serializer_pxi, __pyx_n_s_aexit, 1439, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(8, 1439, __pyx_L1_error)
/* "src/lxml/iterparse.pxi":148
- * return self._parser.version
+ * return self._parser.version
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u"""set_element_class_lookup(self, lookup = None)
__Pyx_GIVEREF(__pyx_tuple__606);
__pyx_codeobj__607 = (PyObject*)__Pyx_PyCode_New(3, 2, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__606, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_xsltext_pxi, __pyx_n_s_process_children, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__607)) __PYX_ERR(19, 74, __pyx_L1_error)
- /* "lxml/etree.pyx":3511
+ /* "lxml/etree.pyx":3522
* self._error_log = _ErrorLog()
*
* def validate(self, etree): # <<<<<<<<<<<<<<
* u"""validate(self, etree)
*
*/
- __pyx_tuple__608 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__608)) __PYX_ERR(0, 3511, __pyx_L1_error)
+ __pyx_tuple__608 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__608)) __PYX_ERR(0, 3522, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__608);
__Pyx_GIVEREF(__pyx_tuple__608);
- __pyx_codeobj__609 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__608, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_validate, 3511, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__609)) __PYX_ERR(0, 3511, __pyx_L1_error)
+ __pyx_codeobj__609 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__608, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_validate, 3522, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__609)) __PYX_ERR(0, 3522, __pyx_L1_error)
- /* "lxml/etree.pyx":3520
+ /* "lxml/etree.pyx":3531
* return self(etree)
*
* def assertValid(self, etree): # <<<<<<<<<<<<<<
* u"""assertValid(self, etree)
*
*/
- __pyx_tuple__610 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__610)) __PYX_ERR(0, 3520, __pyx_L1_error)
+ __pyx_tuple__610 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__610)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__610);
__Pyx_GIVEREF(__pyx_tuple__610);
- __pyx_codeobj__611 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__610, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_assertValid, 3520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__611)) __PYX_ERR(0, 3520, __pyx_L1_error)
+ __pyx_codeobj__611 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__610, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_assertValid, 3531, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__611)) __PYX_ERR(0, 3531, __pyx_L1_error)
- /* "lxml/etree.pyx":3530
+ /* "lxml/etree.pyx":3541
* self._error_log)
*
* def assert_(self, etree): # <<<<<<<<<<<<<<
* u"""assert_(self, etree)
*
*/
- __pyx_tuple__612 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__612)) __PYX_ERR(0, 3530, __pyx_L1_error)
+ __pyx_tuple__612 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_etree); if (unlikely(!__pyx_tuple__612)) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__612);
__Pyx_GIVEREF(__pyx_tuple__612);
- __pyx_codeobj__613 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__612, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_assert, 3530, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__613)) __PYX_ERR(0, 3530, __pyx_L1_error)
+ __pyx_codeobj__613 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__612, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_assert, 3541, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__613)) __PYX_ERR(0, 3541, __pyx_L1_error)
- /* "lxml/etree.pyx":3539
+ /* "lxml/etree.pyx":3550
* u"Document does not comply with schema")
*
* cpdef _append_log_message(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
* message, filename):
* self._error_log._receiveGeneric(domain, type, level, line, message,
*/
- __pyx_tuple__614 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_domain, __pyx_n_s_type, __pyx_n_s_level, __pyx_n_s_line_2, __pyx_n_s_message, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__614)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_tuple__614 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_domain, __pyx_n_s_type, __pyx_n_s_level, __pyx_n_s_line_2, __pyx_n_s_message, __pyx_n_s_filename); if (unlikely(!__pyx_tuple__614)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__614);
__Pyx_GIVEREF(__pyx_tuple__614);
- __pyx_codeobj__615 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__614, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_append_log_message, 3539, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__615)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_codeobj__615 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__614, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_append_log_message, 3550, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__615)) __PYX_ERR(0, 3550, __pyx_L1_error)
- /* "lxml/etree.pyx":3544
+ /* "lxml/etree.pyx":3555
* filename)
*
* cpdef _clear_error_log(self): # <<<<<<<<<<<<<<
* self._error_log.clear()
*
*/
- __pyx_tuple__616 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__616)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ __pyx_tuple__616 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__616)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__616);
__Pyx_GIVEREF(__pyx_tuple__616);
- __pyx_codeobj__617 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__616, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_clear_error_log, 3544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__617)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ __pyx_codeobj__617 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__616, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_etree_pyx, __pyx_n_s_clear_error_log, 3555, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__617)) __PYX_ERR(0, 3555, __pyx_L1_error)
/* "src/lxml/dtd.pxi":163
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
__pyx_codeobj__620 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__619, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_dtd_pxi, __pyx_n_s_values, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__620)) __PYX_ERR(20, 170, __pyx_L1_error)
/* "src/lxml/dtd.pxi":223
- * return None
+ * return None
*
* def iterattributes(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
__pyx_codeobj__623 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__622, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_dtd_pxi, __pyx_n_s_attributes, 233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__623)) __PYX_ERR(20, 233, __pyx_L1_error)
/* "src/lxml/dtd.pxi":314
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
* def iterelements(self): # <<<<<<<<<<<<<<
* cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
__pyx_vtable_4lxml_5etree__BaseErrorLog._receiveGeneric = (void (*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int, int, int, int, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric;
__pyx_vtable_4lxml_5etree__BaseErrorLog._buildParseException = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException;
__pyx_vtable_4lxml_5etree__BaseErrorLog._buildExceptionMessage = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 180, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 184, __pyx_L1_error)
__pyx_type_4lxml_5etree__BaseErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__BaseErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree__BaseErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__BaseErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 180, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 180, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 184, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BaseErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) __PYX_ERR(1, 184, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__BaseErrorLog = &__pyx_type_4lxml_5etree__BaseErrorLog;
__pyx_vtabptr_4lxml_5etree__ListErrorLog = &__pyx_vtable_4lxml_5etree__ListErrorLog;
__pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
__pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_ListErrorLog_copy;
__pyx_type_4lxml_5etree__ListErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 270, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 274, __pyx_L1_error)
__pyx_type_4lxml_5etree__ListErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__ListErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree__ListErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__ListErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ListErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 270, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ListErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 270, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ListErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 274, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ListErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__ListErrorLog) < 0) __PYX_ERR(1, 274, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ListErrorLog = &__pyx_type_4lxml_5etree__ListErrorLog;
__pyx_vtabptr_4lxml_5etree__ErrorLogContext = &__pyx_vtable_4lxml_5etree__ErrorLogContext;
__pyx_vtable_4lxml_5etree__ErrorLogContext.push_error_log = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLogContext *, struct __pyx_obj_4lxml_5etree__BaseErrorLog *))__pyx_f_4lxml_5etree_16_ErrorLogContext_push_error_log;
__pyx_vtable_4lxml_5etree__ErrorLogContext.pop_error_log = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLogContext *))__pyx_f_4lxml_5etree_16_ErrorLogContext_pop_error_log;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLogContext) < 0) __PYX_ERR(1, 388, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLogContext) < 0) __PYX_ERR(1, 392, __pyx_L1_error)
__pyx_type_4lxml_5etree__ErrorLogContext.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__ErrorLogContext.tp_dictoffset && __pyx_type_4lxml_5etree__ErrorLogContext.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__ErrorLogContext.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLogContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLogContext) < 0) __PYX_ERR(1, 388, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLogContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLogContext) < 0) __PYX_ERR(1, 392, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ErrorLogContext = &__pyx_type_4lxml_5etree__ErrorLogContext;
__pyx_vtabptr_4lxml_5etree__ErrorLog = &__pyx_vtable_4lxml_5etree__ErrorLog;
__pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ListErrorLog;
__pyx_vtable_4lxml_5etree__ErrorLog.disconnect = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog_disconnect;
__pyx_vtable_4lxml_5etree__ErrorLog.clear = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_clear;
__pyx_type_4lxml_5etree__ErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ListErrorLog;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 425, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 429, __pyx_L1_error)
__pyx_type_4lxml_5etree__ErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__ErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree__ErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__ErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 425, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 425, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 429, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__ErrorLog) < 0) __PYX_ERR(1, 429, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ErrorLog = &__pyx_type_4lxml_5etree__ErrorLog;
__pyx_vtabptr_4lxml_5etree__DomainErrorLog = &__pyx_vtable_4lxml_5etree__DomainErrorLog;
__pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
__pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_15_DomainErrorLog_receive;
__pyx_type_4lxml_5etree__DomainErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 478, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 482, __pyx_L1_error)
__pyx_type_4lxml_5etree__DomainErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__DomainErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree__DomainErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__DomainErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__DomainErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 478, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DomainErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 478, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__DomainErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 482, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DomainErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) __PYX_ERR(1, 482, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__DomainErrorLog = &__pyx_type_4lxml_5etree__DomainErrorLog;
__pyx_vtabptr_4lxml_5etree__RotatingErrorLog = &__pyx_vtable_4lxml_5etree__RotatingErrorLog;
__pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
__pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_17_RotatingErrorLog_receive;
__pyx_type_4lxml_5etree__RotatingErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 487, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 491, __pyx_L1_error)
__pyx_type_4lxml_5etree__RotatingErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__RotatingErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree__RotatingErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__RotatingErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__RotatingErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 487, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RotatingErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 487, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__RotatingErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 491, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RotatingErrorLog, (PyObject *)&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) __PYX_ERR(1, 491, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__RotatingErrorLog = &__pyx_type_4lxml_5etree__RotatingErrorLog;
__pyx_vtabptr_4lxml_5etree_PyErrorLog = &__pyx_vtable_4lxml_5etree_PyErrorLog;
__pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
__pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_copy;
__pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_receive;
__pyx_type_4lxml_5etree_PyErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 505, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 509, __pyx_L1_error)
__pyx_type_4lxml_5etree_PyErrorLog.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_PyErrorLog.tp_dictoffset && __pyx_type_4lxml_5etree_PyErrorLog.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_PyErrorLog.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PyErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 505, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyErrorLog, (PyObject *)&__pyx_type_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 505, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PyErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 509, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyErrorLog, (PyObject *)&__pyx_type_4lxml_5etree_PyErrorLog) < 0) __PYX_ERR(1, 509, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_PyErrorLog = &__pyx_type_4lxml_5etree_PyErrorLog;
__pyx_vtabptr_4lxml_5etree__Document = &__pyx_vtable_4lxml_5etree__Document;
__pyx_vtable_4lxml_5etree__Document.getroot = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getroot;
__pyx_vtabptr_4lxml_5etree___ContentOnlyElement = &__pyx_vtable_4lxml_5etree___ContentOnlyElement;
__pyx_vtable_4lxml_5etree___ContentOnlyElement._raiseImmutable = (int (*)(struct __pyx_obj_4lxml_5etree___ContentOnlyElement *))__pyx_f_4lxml_5etree_20__ContentOnlyElement__raiseImmutable;
__pyx_type_4lxml_5etree___ContentOnlyElement.tp_base = __pyx_ptype_4lxml_5etree__Element;
- if (PyType_Ready(&__pyx_type_4lxml_5etree___ContentOnlyElement) < 0) __PYX_ERR(0, 1623, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree___ContentOnlyElement) < 0) __PYX_ERR(0, 1634, __pyx_L1_error)
__pyx_type_4lxml_5etree___ContentOnlyElement.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dictoffset && __pyx_type_4lxml_5etree___ContentOnlyElement.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree___ContentOnlyElement.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
#if CYTHON_COMPILING_IN_CPYTHON
{
- PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__setitem__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1623, __pyx_L1_error)
+ PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__setitem__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1634, __pyx_L1_error)
if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_6__setitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_6__setitem__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_6__setitem__;
#endif
#if CYTHON_COMPILING_IN_CPYTHON
{
- PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__getitem__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1623, __pyx_L1_error)
+ PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__getitem__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1634, __pyx_L1_error)
if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_8__getitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_8__getitem__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_8__getitem__;
#endif
#if CYTHON_COMPILING_IN_CPYTHON
{
- PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__len__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1623, __pyx_L1_error)
+ PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__len__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1634, __pyx_L1_error)
if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_10__len__ = *((PyWrapperDescrObject *)wrapper)->d_base;
__pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_10__len__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_10__len__;
}
}
#endif
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dict, __pyx_vtabptr_4lxml_5etree___ContentOnlyElement) < 0) __PYX_ERR(0, 1623, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dict, __pyx_vtabptr_4lxml_5etree___ContentOnlyElement) < 0) __PYX_ERR(0, 1634, __pyx_L1_error)
__pyx_ptype_4lxml_5etree___ContentOnlyElement = &__pyx_type_4lxml_5etree___ContentOnlyElement;
__pyx_vtabptr_4lxml_5etree__Comment = &__pyx_vtable_4lxml_5etree__Comment;
__pyx_vtable_4lxml_5etree__Comment.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
__pyx_type_4lxml_5etree__Comment.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1690, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)
__pyx_type_4lxml_5etree__Comment.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__Comment.tp_dictoffset && __pyx_type_4lxml_5etree__Comment.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__Comment.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1690, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Comment_2, (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1690, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Comment_2, (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) __PYX_ERR(0, 1701, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__Comment = &__pyx_type_4lxml_5etree__Comment;
__pyx_vtabptr_4lxml_5etree__ProcessingInstruction = &__pyx_vtable_4lxml_5etree__ProcessingInstruction;
__pyx_vtable_4lxml_5etree__ProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
__pyx_type_4lxml_5etree__ProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1698, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1709, __pyx_L1_error)
__pyx_type_4lxml_5etree__ProcessingInstruction.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dictoffset && __pyx_type_4lxml_5etree__ProcessingInstruction.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__ProcessingInstruction.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1698, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ProcessingInstruction_2, (PyObject *)&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1698, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1709, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ProcessingInstruction_2, (PyObject *)&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) __PYX_ERR(0, 1709, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ProcessingInstruction = &__pyx_type_4lxml_5etree__ProcessingInstruction;
__pyx_vtabptr_4lxml_5etree__Entity = &__pyx_vtable_4lxml_5etree__Entity;
__pyx_vtable_4lxml_5etree__Entity.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
__pyx_type_4lxml_5etree__Entity.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1749, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1760, __pyx_L1_error)
__pyx_type_4lxml_5etree__Entity.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__Entity.tp_dictoffset && __pyx_type_4lxml_5etree__Entity.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__Entity.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1749, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Entity_2, (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1749, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1760, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Entity_2, (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) __PYX_ERR(0, 1760, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__Entity = &__pyx_type_4lxml_5etree__Entity;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_QName) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_QName) < 0) __PYX_ERR(0, 1789, __pyx_L1_error)
__pyx_type_4lxml_5etree_QName.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_QName.tp_dictoffset && __pyx_type_4lxml_5etree_QName.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_QName.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_QName, (PyObject *)&__pyx_type_4lxml_5etree_QName) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_QName, (PyObject *)&__pyx_type_4lxml_5etree_QName) < 0) __PYX_ERR(0, 1789, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_QName = &__pyx_type_4lxml_5etree_QName;
__pyx_vtabptr_4lxml_5etree__ElementTree = &__pyx_vtable_4lxml_5etree__ElementTree;
__pyx_vtable_4lxml_5etree__ElementTree._assertHasRoot = (int (*)(struct LxmlElementTree *))__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot;
- if (PyType_Ready(&LxmlElementTreeType) < 0) __PYX_ERR(0, 1847, __pyx_L1_error)
+ if (PyType_Ready(&LxmlElementTreeType) < 0) __PYX_ERR(0, 1858, __pyx_L1_error)
LxmlElementTreeType.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!LxmlElementTreeType.tp_dictoffset && LxmlElementTreeType.tp_getattro == PyObject_GenericGetAttr)) {
LxmlElementTreeType.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) __PYX_ERR(0, 1847, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTree_2, (PyObject *)&LxmlElementTreeType) < 0) __PYX_ERR(0, 1847, __pyx_L1_error)
+ if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) __PYX_ERR(0, 1858, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTree_2, (PyObject *)&LxmlElementTreeType) < 0) __PYX_ERR(0, 1858, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ElementTree = &LxmlElementTreeType;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) __PYX_ERR(0, 2395, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
__pyx_type_4lxml_5etree__Attrib.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__Attrib.tp_dictoffset && __pyx_type_4lxml_5etree__Attrib.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__Attrib.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Attrib, (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) __PYX_ERR(0, 2395, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Attrib, (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__Attrib = &__pyx_type_4lxml_5etree__Attrib;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) __PYX_ERR(0, 2533, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) __PYX_ERR(0, 2544, __pyx_L1_error)
__pyx_type_4lxml_5etree__AttribIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__AttribIterator.tp_dictoffset && __pyx_type_4lxml_5etree__AttribIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__AttribIterator.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
__pyx_ptype_4lxml_5etree__AttribIterator = &__pyx_type_4lxml_5etree__AttribIterator;
__pyx_vtabptr_4lxml_5etree__ElementTagMatcher = &__pyx_vtable_4lxml_5etree__ElementTagMatcher;
__pyx_vtable_4lxml_5etree__ElementTagMatcher._initTagMatch = (PyObject *(*)(struct LxmlElementTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch;
- if (PyType_Ready(&LxmlElementTagMatcherType) < 0) __PYX_ERR(0, 2574, __pyx_L1_error)
+ if (PyType_Ready(&LxmlElementTagMatcherType) < 0) __PYX_ERR(0, 2585, __pyx_L1_error)
LxmlElementTagMatcherType.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!LxmlElementTagMatcherType.tp_dictoffset && LxmlElementTagMatcherType.tp_getattro == PyObject_GenericGetAttr)) {
LxmlElementTagMatcherType.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) __PYX_ERR(0, 2574, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTagMatcher, (PyObject *)&LxmlElementTagMatcherType) < 0) __PYX_ERR(0, 2574, __pyx_L1_error)
+ if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) __PYX_ERR(0, 2585, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTagMatcher, (PyObject *)&LxmlElementTagMatcherType) < 0) __PYX_ERR(0, 2585, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ElementTagMatcher = &LxmlElementTagMatcherType;
__pyx_vtabptr_4lxml_5etree__ElementIterator = &__pyx_vtable_4lxml_5etree__ElementIterator;
__pyx_vtable_4lxml_5etree__ElementIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
__pyx_vtable_4lxml_5etree__ElementIterator._storeNext = (void (*)(struct LxmlElementIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_16_ElementIterator__storeNext;
LxmlElementIteratorType.tp_base = __pyx_ptype_4lxml_5etree__ElementTagMatcher;
- if (PyType_Ready(&LxmlElementIteratorType) < 0) __PYX_ERR(0, 2605, __pyx_L1_error)
+ if (PyType_Ready(&LxmlElementIteratorType) < 0) __PYX_ERR(0, 2616, __pyx_L1_error)
LxmlElementIteratorType.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!LxmlElementIteratorType.tp_dictoffset && LxmlElementIteratorType.tp_getattro == PyObject_GenericGetAttr)) {
LxmlElementIteratorType.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) __PYX_ERR(0, 2605, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementIterator, (PyObject *)&LxmlElementIteratorType) < 0) __PYX_ERR(0, 2605, __pyx_L1_error)
+ if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) __PYX_ERR(0, 2616, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementIterator, (PyObject *)&LxmlElementIteratorType) < 0) __PYX_ERR(0, 2616, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ElementIterator = &LxmlElementIteratorType;
__pyx_vtabptr_4lxml_5etree__MultiTagMatcher = &__pyx_vtable_4lxml_5etree__MultiTagMatcher;
__pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAll = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll;
__pyx_vtable_4lxml_5etree__MultiTagMatcher.matches = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlNode *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches;
__pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesNsTag = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, const xmlChar *, const xmlChar *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesNsTag;
__pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesAttribute = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlAttr *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) __PYX_ERR(0, 2642, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) __PYX_ERR(0, 2653, __pyx_L1_error)
__pyx_type_4lxml_5etree__MultiTagMatcher.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dictoffset && __pyx_type_4lxml_5etree__MultiTagMatcher.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__MultiTagMatcher.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) __PYX_ERR(0, 2642, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) __PYX_ERR(0, 2653, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__MultiTagMatcher = &__pyx_type_4lxml_5etree__MultiTagMatcher;
__pyx_vtabptr_4lxml_5etree__ElementMatchIterator = &__pyx_vtable_4lxml_5etree__ElementMatchIterator;
__pyx_vtable_4lxml_5etree__ElementMatchIterator._initTagMatcher = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher;
__pyx_vtable_4lxml_5etree__ElementMatchIterator._storeNext = (int (*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2779, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2790, __pyx_L1_error)
__pyx_type_4lxml_5etree__ElementMatchIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dictoffset && __pyx_type_4lxml_5etree__ElementMatchIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__ElementMatchIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2779, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementMatchIterator, (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2779, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2790, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementMatchIterator, (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) __PYX_ERR(0, 2790, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__ElementMatchIterator = &__pyx_type_4lxml_5etree__ElementMatchIterator;
__pyx_vtabptr_4lxml_5etree_ElementChildIterator = &__pyx_vtable_4lxml_5etree_ElementChildIterator;
__pyx_vtable_4lxml_5etree_ElementChildIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
__pyx_type_4lxml_5etree_ElementChildIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2808, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2819, __pyx_L1_error)
__pyx_type_4lxml_5etree_ElementChildIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_ElementChildIterator.tp_dictoffset && __pyx_type_4lxml_5etree_ElementChildIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_ElementChildIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2808, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementChildIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2808, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2819, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementChildIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) __PYX_ERR(0, 2819, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_ElementChildIterator = &__pyx_type_4lxml_5etree_ElementChildIterator;
__pyx_vtabptr_4lxml_5etree_SiblingsIterator = &__pyx_vtable_4lxml_5etree_SiblingsIterator;
__pyx_vtable_4lxml_5etree_SiblingsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
__pyx_type_4lxml_5etree_SiblingsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2828, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2839, __pyx_L1_error)
__pyx_type_4lxml_5etree_SiblingsIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_SiblingsIterator.tp_dictoffset && __pyx_type_4lxml_5etree_SiblingsIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_SiblingsIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2828, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SiblingsIterator, (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2828, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2839, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SiblingsIterator, (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) __PYX_ERR(0, 2839, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_SiblingsIterator = &__pyx_type_4lxml_5etree_SiblingsIterator;
__pyx_vtabptr_4lxml_5etree_AncestorsIterator = &__pyx_vtable_4lxml_5etree_AncestorsIterator;
__pyx_vtable_4lxml_5etree_AncestorsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
__pyx_type_4lxml_5etree_AncestorsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2843, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2854, __pyx_L1_error)
__pyx_type_4lxml_5etree_AncestorsIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_AncestorsIterator.tp_dictoffset && __pyx_type_4lxml_5etree_AncestorsIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_AncestorsIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2843, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AncestorsIterator, (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2843, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2854, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AncestorsIterator, (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) __PYX_ERR(0, 2854, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_AncestorsIterator = &__pyx_type_4lxml_5etree_AncestorsIterator;
__pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator = &__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeAnyTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag;
__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeMatchTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchTag;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2853, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dictoffset && __pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2853, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementDepthFirstIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2853, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementDepthFirstIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) __PYX_ERR(0, 2864, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = &__pyx_type_4lxml_5etree_ElementDepthFirstIterator;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) __PYX_ERR(0, 2940, __pyx_L1_error)
__pyx_type_4lxml_5etree_ElementTextIterator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_ElementTextIterator.tp_dictoffset && __pyx_type_4lxml_5etree_ElementTextIterator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_ElementTextIterator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTextIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) __PYX_ERR(0, 2929, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementTextIterator, (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) __PYX_ERR(0, 2940, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_ElementTextIterator = &__pyx_type_4lxml_5etree_ElementTextIterator;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) __PYX_ERR(0, 3055, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) __PYX_ERR(0, 3066, __pyx_L1_error)
__pyx_type_4lxml_5etree_CDATA.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_CDATA.tp_dictoffset && __pyx_type_4lxml_5etree_CDATA.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_CDATA.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CDATA, (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) __PYX_ERR(0, 3055, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CDATA, (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) __PYX_ERR(0, 3066, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_CDATA = &__pyx_type_4lxml_5etree_CDATA;
__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyProxy;
__pyx_vtable_4lxml_5etree__ReadOnlyProxy._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode;
if (PyObject_SetAttr(__pyx_m, __pyx_n_s_XSLTExtension, (PyObject *)&__pyx_type_4lxml_5etree_XSLTExtension) < 0) __PYX_ERR(19, 3, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_XSLTExtension = &__pyx_type_4lxml_5etree_XSLTExtension;
__pyx_type_4lxml_5etree_DocumentInvalid.tp_base = __pyx_ptype_4lxml_5etree_LxmlError;
- if (PyType_Ready(&__pyx_type_4lxml_5etree_DocumentInvalid) < 0) __PYX_ERR(0, 3497, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree_DocumentInvalid) < 0) __PYX_ERR(0, 3508, __pyx_L1_error)
__pyx_type_4lxml_5etree_DocumentInvalid.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree_DocumentInvalid.tp_dictoffset && __pyx_type_4lxml_5etree_DocumentInvalid.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree_DocumentInvalid.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DocumentInvalid, (PyObject *)&__pyx_type_4lxml_5etree_DocumentInvalid) < 0) __PYX_ERR(0, 3497, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DocumentInvalid, (PyObject *)&__pyx_type_4lxml_5etree_DocumentInvalid) < 0) __PYX_ERR(0, 3508, __pyx_L1_error)
__pyx_ptype_4lxml_5etree_DocumentInvalid = &__pyx_type_4lxml_5etree_DocumentInvalid;
__pyx_vtabptr_4lxml_5etree__Validator = &__pyx_vtable_4lxml_5etree__Validator;
__pyx_vtable_4lxml_5etree__Validator._append_log_message = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int, int, int, int, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__append_log_message;
__pyx_vtable_4lxml_5etree__Validator._clear_error_log = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__clear_error_log;
- if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3505, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3516, __pyx_L1_error)
__pyx_type_4lxml_5etree__Validator.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_5etree__Validator.tp_dictoffset && __pyx_type_4lxml_5etree__Validator.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_5etree__Validator.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3505, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Validator, (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3505, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3516, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Validator, (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) __PYX_ERR(0, 3516, __pyx_L1_error)
__pyx_ptype_4lxml_5etree__Validator = &__pyx_type_4lxml_5etree__Validator;
__pyx_type_4lxml_5etree_DTDError.tp_base = __pyx_ptype_4lxml_5etree_LxmlError;
if (PyType_Ready(&__pyx_type_4lxml_5etree_DTDError) < 0) __PYX_ERR(20, 4, __pyx_L1_error)
if (PyDict_SetItem(__pyx_d, __pyx_n_s_clear_error_log_2, __pyx_t_7) < 0) __PYX_ERR(1, 11, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":187
+ /* "src/lxml/xmlerror.pxi":191
* self.last_error = last_error
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* return _BaseErrorLog(self._first_error, self.last_error)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_BaseErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 187, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_BaseErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 187, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 191, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__BaseErrorLog);
- /* "src/lxml/xmlerror.pxi":193
+ /* "src/lxml/xmlerror.pxi":197
* return u''
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* pass
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_BaseErrorLog_7receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 193, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_BaseErrorLog_7receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BaseErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 193, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__BaseErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 197, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__BaseErrorLog);
- /* "src/lxml/xmlerror.pxi":283
+ /* "src/lxml/xmlerror.pxi":287
* self._entries = entries
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Creates a shallow copy of this error log. Reuses the list of
* entries.
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 283, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 283, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 287, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":321
+ /* "src/lxml/xmlerror.pxi":325
* return len(self._entries) > self._offset
*
* def filter_domains(self, domains): # <<<<<<<<<<<<<<
* u"""Filter the errors by the given domains and return a new error log
* containing the matches.
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_17filter_domains, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_domains, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 321, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_17filter_domains, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_domains, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 325, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_domains, __pyx_t_7) < 0) __PYX_ERR(1, 321, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_domains, __pyx_t_7) < 0) __PYX_ERR(1, 325, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":331
+ /* "src/lxml/xmlerror.pxi":335
* return _ListErrorLog(filtered, None, None)
*
* def filter_types(self, types): # <<<<<<<<<<<<<<
* u"""filter_types(self, types)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_19filter_types, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_types, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 331, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_19filter_types, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_types, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_types, __pyx_t_7) < 0) __PYX_ERR(1, 331, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_types, __pyx_t_7) < 0) __PYX_ERR(1, 335, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":343
+ /* "src/lxml/xmlerror.pxi":347
* return _ListErrorLog(filtered, None, None)
*
* def filter_levels(self, levels): # <<<<<<<<<<<<<<
* u"""filter_levels(self, levels)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_21filter_levels, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_levels, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 343, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_21filter_levels, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_levels, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_levels, __pyx_t_7) < 0) __PYX_ERR(1, 343, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_levels, __pyx_t_7) < 0) __PYX_ERR(1, 347, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":355
+ /* "src/lxml/xmlerror.pxi":359
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_level(self, level): # <<<<<<<<<<<<<<
* u"""filter_from_level(self, level)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_23filter_from_level, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_level, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 355, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_23filter_from_level, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_level, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_level, __pyx_t_7) < 0) __PYX_ERR(1, 355, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_level, __pyx_t_7) < 0) __PYX_ERR(1, 359, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":364
+ /* "src/lxml/xmlerror.pxi":368
* return _ListErrorLog(filtered, None, None)
*
* def filter_from_fatals(self): # <<<<<<<<<<<<<<
* u"""filter_from_fatals(self)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_25filter_from_fatals, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_fatals, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 364, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_25filter_from_fatals, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_fatals, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 368, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_fatals, __pyx_t_7) < 0) __PYX_ERR(1, 364, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_fatals, __pyx_t_7) < 0) __PYX_ERR(1, 368, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":371
+ /* "src/lxml/xmlerror.pxi":375
* return self.filter_from_level(ErrorLevels.FATAL)
*
* def filter_from_errors(self): # <<<<<<<<<<<<<<
* u"""filter_from_errors(self)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_27filter_from_errors, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_errors, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 371, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_27filter_from_errors, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_errors, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_errors, __pyx_t_7) < 0) __PYX_ERR(1, 371, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_errors, __pyx_t_7) < 0) __PYX_ERR(1, 375, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":378
+ /* "src/lxml/xmlerror.pxi":382
* return self.filter_from_level(ErrorLevels.ERROR)
*
* def filter_from_warnings(self): # <<<<<<<<<<<<<<
* u"""filter_from_warnings(self)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_29filter_from_warnings, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_warnin, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 378, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13_ListErrorLog_29filter_from_warnings, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ListErrorLog_filter_from_warnin, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 382, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_warnings, __pyx_t_7) < 0) __PYX_ERR(1, 378, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ListErrorLog->tp_dict, __pyx_n_s_filter_from_warnings, __pyx_t_7) < 0) __PYX_ERR(1, 382, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ListErrorLog);
- /* "src/lxml/xmlerror.pxi":437
+ /* "src/lxml/xmlerror.pxi":441
* return self.connect()
*
* def __exit__(self, *args): # <<<<<<<<<<<<<<
* # TODO: make this a cdef function when Cython supports it
* self.disconnect()
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_5__exit__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog___exit, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 437, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_5__exit__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog___exit, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_exit, __pyx_t_7) < 0) __PYX_ERR(1, 437, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_exit, __pyx_t_7) < 0) __PYX_ERR(1, 441, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ErrorLog);
- /* "src/lxml/xmlerror.pxi":457
+ /* "src/lxml/xmlerror.pxi":461
* return 0
*
* cpdef clear(self): # <<<<<<<<<<<<<<
* self._first_error = None
* self.last_error = None
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_7clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_clear, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 457, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_7clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_clear, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_clear, __pyx_t_7) < 0) __PYX_ERR(1, 457, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_clear, __pyx_t_7) < 0) __PYX_ERR(1, 461, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ErrorLog);
- /* "src/lxml/xmlerror.pxi":463
+ /* "src/lxml/xmlerror.pxi":467
* del self._entries[:]
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Creates a shallow copy of this error log and the list of entries.
* """
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_9copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 463, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_9copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 463, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 467, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ErrorLog);
- /* "src/lxml/xmlerror.pxi":473
+ /* "src/lxml/xmlerror.pxi":477
* return iter(self._entries[self._offset:])
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_13receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 473, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9_ErrorLog_13receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 473, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 477, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ErrorLog);
- /* "src/lxml/xmlerror.pxi":483
+ /* "src/lxml/xmlerror.pxi":487
* self._accepted_domains = tuple(domains)
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if entry.domain in self._accepted_domains:
* _ErrorLog.receive(self, entry)
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_15_DomainErrorLog_3receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_DomainErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 483, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_15_DomainErrorLog_3receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_DomainErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__136)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__DomainErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 483, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__DomainErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 487, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__DomainErrorLog);
- /* "src/lxml/xmlerror.pxi":493
+ /* "src/lxml/xmlerror.pxi":497
* self._max_len = max_len
*
* cpdef receive(self, _LogEntry entry): # <<<<<<<<<<<<<<
* if self._first_error is None and entry.level >= xmlerror.XML_ERR_ERROR:
* self._first_error = entry
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_RotatingErrorLog_3receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RotatingErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 493, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17_RotatingErrorLog_3receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RotatingErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 493, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 497, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__RotatingErrorLog);
- /* "src/lxml/xmlerror.pxi":544
+ /* "src/lxml/xmlerror.pxi":548
* self._log = logger.log
*
* cpdef copy(self): # <<<<<<<<<<<<<<
* u"""Dummy method that returns an empty error log.
* """
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 544, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_3copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 544, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_copy, __pyx_t_7) < 0) __PYX_ERR(1, 548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_PyErrorLog);
- /* "src/lxml/xmlerror.pxi":549
+ /* "src/lxml/xmlerror.pxi":553
* return _ListErrorLog([], None, None)
*
* def log(self, log_entry, message, *args): # <<<<<<<<<<<<<<
* u"""log(self, log_entry, message, *args)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_5log, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 549, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_5log, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 553, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_log, __pyx_t_7) < 0) __PYX_ERR(1, 549, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_log, __pyx_t_7) < 0) __PYX_ERR(1, 553, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_PyErrorLog);
- /* "src/lxml/xmlerror.pxi":566
+ /* "src/lxml/xmlerror.pxi":570
* )
*
* cpdef receive(self, _LogEntry log_entry): # <<<<<<<<<<<<<<
* u"""receive(self, log_entry)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_7receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 566, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10PyErrorLog_7receive, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyErrorLog_receive, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 566, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_PyErrorLog->tp_dict, __pyx_n_s_receive, __pyx_t_7) < 0) __PYX_ERR(1, 570, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_PyErrorLog);
- /* "src/lxml/xmlerror.pxi":582
+ /* "src/lxml/xmlerror.pxi":586
* # libxml2/libxslt
*
* cdef _BaseErrorLog __GLOBAL_ERROR_LOG = _RotatingErrorLog(__MAX_LOG_SIZE) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 582, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_5etree__RotatingErrorLog), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_7));
__Pyx_GIVEREF(__pyx_t_7);
__pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":616
+ /* "src/lxml/xmlerror.pxi":620
*
*
* def use_global_python_log(PyErrorLog log not None): # <<<<<<<<<<<<<<
* u"""use_global_python_log(log)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, 0, __pyx_n_s_use_global_python_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 616, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, 0, __pyx_n_s_use_global_python_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_use_global_python_log, __pyx_t_7) < 0) __PYX_ERR(1, 616, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_use_global_python_log, __pyx_t_7) < 0) __PYX_ERR(1, 620, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":804
+ /* "src/lxml/xmlerror.pxi":808
*
*
* class ErrorLevels(object): # <<<<<<<<<<<<<<
* u"Libxml2 error levels"
*
*/
- __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__147); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 804, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__147); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__147, __pyx_n_s_ErrorLevels, __pyx_n_s_ErrorLevels, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_levels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 804, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__147, __pyx_n_s_ErrorLevels, __pyx_n_s_ErrorLevels, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_levels); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorLevels, __pyx_tuple__147, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 804, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorLevels, __pyx_tuple__147, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorLevels, __pyx_t_1) < 0) __PYX_ERR(1, 804, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorLevels, __pyx_t_1) < 0) __PYX_ERR(1, 808, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":807
+ /* "src/lxml/xmlerror.pxi":811
* u"Libxml2 error levels"
*
* class ErrorDomains(object): # <<<<<<<<<<<<<<
* u"Libxml2 error domains"
*
*/
- __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__148); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 807, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__148); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__148, __pyx_n_s_ErrorDomains, __pyx_n_s_ErrorDomains, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_domains); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 807, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__148, __pyx_n_s_ErrorDomains, __pyx_n_s_ErrorDomains, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_domains); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorDomains, __pyx_tuple__148, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 807, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorDomains, __pyx_tuple__148, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 811, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorDomains, __pyx_t_1) < 0) __PYX_ERR(1, 807, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorDomains, __pyx_t_1) < 0) __PYX_ERR(1, 811, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":810
+ /* "src/lxml/xmlerror.pxi":814
* u"Libxml2 error domains"
*
* class ErrorTypes(object): # <<<<<<<<<<<<<<
* u"Libxml2 error types"
*
*/
- __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__149); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 810, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__149); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__149, __pyx_n_s_ErrorTypes, __pyx_n_s_ErrorTypes, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 810, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__149, __pyx_n_s_ErrorTypes, __pyx_n_s_ErrorTypes, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_error_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorTypes, __pyx_tuple__149, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 810, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ErrorTypes, __pyx_tuple__149, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 814, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorTypes, __pyx_t_1) < 0) __PYX_ERR(1, 810, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_ErrorTypes, __pyx_t_1) < 0) __PYX_ERR(1, 814, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":813
+ /* "src/lxml/xmlerror.pxi":817
* u"Libxml2 error types"
*
* class RelaxNGErrorTypes(object): # <<<<<<<<<<<<<<
* u"Libxml2 RelaxNG error types"
*
*/
- __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__150); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 813, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__150); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__150, __pyx_n_s_RelaxNGErrorTypes, __pyx_n_s_RelaxNGErrorTypes, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_RelaxNG_error_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 813, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__150, __pyx_n_s_RelaxNGErrorTypes, __pyx_n_s_RelaxNGErrorTypes, (PyObject *) NULL, __pyx_n_s_lxml_etree, __pyx_kp_s_Libxml2_RelaxNG_error_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_RelaxNGErrorTypes, __pyx_tuple__150, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 813, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_RelaxNGErrorTypes, __pyx_tuple__150, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_RelaxNGErrorTypes, __pyx_t_1) < 0) __PYX_ERR(1, 813, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_RelaxNGErrorTypes, __pyx_t_1) < 0) __PYX_ERR(1, 817, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "src/lxml/xmlerror.pxi":820
+ /* "src/lxml/xmlerror.pxi":824
* # This section is generated by the script 'update-error-constants.py'.
*
* cdef object __ERROR_LEVELS = """\ # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_LEVELS, __pyx_kp_s_NONE_0_WARNING_1_ERROR_2_FATAL_3);
__Pyx_GIVEREF(__pyx_kp_s_NONE_0_WARNING_1_ERROR_2_FATAL_3);
- /* "src/lxml/xmlerror.pxi":827
+ /* "src/lxml/xmlerror.pxi":831
* """
*
* cdef object __ERROR_DOMAINS = """\ # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_DOMAINS, __pyx_kp_s_NONE_0_PARSER_1_TREE_2_NAMESPACE);
__Pyx_GIVEREF(__pyx_kp_s_NONE_0_PARSER_1_TREE_2_NAMESPACE);
- /* "src/lxml/xmlerror.pxi":861
+ /* "src/lxml/xmlerror.pxi":865
* """
*
* cdef object __PARSER_ERROR_TYPES = """\ # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES, __pyx_kp_s_ERR_OK_0_ERR_INTERNAL_ERROR_1_ER);
__Pyx_GIVEREF(__pyx_kp_s_ERR_OK_0_ERR_INTERNAL_ERROR_1_ER);
- /* "src/lxml/xmlerror.pxi":1598
+ /* "src/lxml/xmlerror.pxi":1602
* """
*
* cdef object __RELAXNG_ERROR_TYPES = """\ # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, __pyx_kp_s_RELAXNG_OK_0_RELAXNG_ERR_MEMORY);
__Pyx_GIVEREF(__pyx_kp_s_RELAXNG_OK_0_RELAXNG_ERR_MEMORY);
- /* "src/lxml/xmlerror.pxi":1642
+ /* "src/lxml/xmlerror.pxi":1646
* # --- END: GENERATED CONSTANTS ---
*
* __initErrorConstants() # <<<<<<<<<<<<<<
*/
- __pyx_t_7 = __pyx_f_4lxml_5etree___initErrorConstants(); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1642, __pyx_L1_error)
+ __pyx_t_7 = __pyx_f_4lxml_5etree___initErrorConstants(); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1394
+ /* "lxml/etree.pyx":1399
* return SiblingsIterator(self, tags, preceding=preceding)
*
* def iterancestors(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iterancestors(self, tag=None, *tags)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_65iterancestors, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterancestors, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1394, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_65iterancestors, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterancestors, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1399, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterancestors, __pyx_t_7) < 0) __PYX_ERR(0, 1394, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterancestors, __pyx_t_7) < 0) __PYX_ERR(0, 1399, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1406
+ /* "lxml/etree.pyx":1413
* return AncestorsIterator(self, tags)
*
* def iterdescendants(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iterdescendants(self, tag=None, *tags)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_67iterdescendants, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterdescendants, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1406, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_67iterdescendants, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterdescendants, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterdescendants, __pyx_t_7) < 0) __PYX_ERR(0, 1406, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterdescendants, __pyx_t_7) < 0) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1419
+ /* "lxml/etree.pyx":1428
* return ElementDepthFirstIterator(self, tags, inclusive=False)
*
* def iterchildren(self, tag=None, *tags, reversed=False): # <<<<<<<<<<<<<<
* u"""iterchildren(self, tag=None, *tags, reversed=False)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_69iterchildren, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterchildren, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1419, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_69iterchildren, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterchildren, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterchildren, __pyx_t_7) < 0) __PYX_ERR(0, 1419, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterchildren, __pyx_t_7) < 0) __PYX_ERR(0, 1428, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1432
+ /* "lxml/etree.pyx":1443
* return ElementChildIterator(self, tags, reversed=reversed)
*
* def getroottree(self): # <<<<<<<<<<<<<<
* u"""getroottree(self)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_71getroottree, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_getroottree, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1432, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_71getroottree, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_getroottree, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_getroottree, __pyx_t_7) < 0) __PYX_ERR(0, 1432, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_getroottree, __pyx_t_7) < 0) __PYX_ERR(0, 1443, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1444
+ /* "lxml/etree.pyx":1455
* return _elementTreeFactory(self._doc, None)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""getiterator(self, tag=None, *tags)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_73getiterator, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_getiterator, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1444, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_73getiterator, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_getiterator, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_getiterator, __pyx_t_7) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_getiterator, __pyx_t_7) < 0) __PYX_ERR(0, 1455, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1466
+ /* "lxml/etree.pyx":1477
* return ElementDepthFirstIterator(self, tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iter(self, tag=None, *tags)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_75iter, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iter, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1466, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_75iter, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iter, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iter, __pyx_t_7) < 0) __PYX_ERR(0, 1466, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iter, __pyx_t_7) < 0) __PYX_ERR(0, 1477, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1490
+ /* "lxml/etree.pyx":1501
* return ElementDepthFirstIterator(self, tags)
*
* def itertext(self, tag=None, *tags, with_tail=True): # <<<<<<<<<<<<<<
* u"""itertext(self, tag=None, *tags, with_tail=True)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_77itertext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_itertext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__213)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1490, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_77itertext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_itertext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__213)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1501, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_itertext, __pyx_t_7) < 0) __PYX_ERR(0, 1490, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_itertext, __pyx_t_7) < 0) __PYX_ERR(0, 1501, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1505
+ /* "lxml/etree.pyx":1516
* return ElementTextIterator(self, tags, with_tail=with_tail)
*
* def makeelement(self, _tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
* u"""makeelement(self, _tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_79makeelement, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_makeelement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1505, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_79makeelement, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_makeelement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_makeelement, __pyx_t_7) < 0) __PYX_ERR(0, 1505, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_makeelement, __pyx_t_7) < 0) __PYX_ERR(0, 1516, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1514
+ /* "lxml/etree.pyx":1525
* attrib, nsmap, _extra)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""find(self, path, namespaces=None)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_81find, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_find, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__217)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1514, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_81find, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_find, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__217)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_find, __pyx_t_7) < 0) __PYX_ERR(0, 1514, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_find, __pyx_t_7) < 0) __PYX_ERR(0, 1525, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1527
+ /* "lxml/etree.pyx":1538
* return _elementpath.find(self, path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
* u"""findtext(self, path, default=None, namespaces=None)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_83findtext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_findtext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__219)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1527, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_83findtext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_findtext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__219)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1538, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_findtext, __pyx_t_7) < 0) __PYX_ERR(0, 1527, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_findtext, __pyx_t_7) < 0) __PYX_ERR(0, 1538, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1540
+ /* "lxml/etree.pyx":1551
* return _elementpath.findtext(self, path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""findall(self, path, namespaces=None)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_85findall, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_findall, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1540, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_85findall, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_findall, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1551, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_findall, __pyx_t_7) < 0) __PYX_ERR(0, 1540, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_findall, __pyx_t_7) < 0) __PYX_ERR(0, 1551, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1553
+ /* "lxml/etree.pyx":1564
* return _elementpath.findall(self, path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""iterfind(self, path, namespaces=None)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_87iterfind, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterfind, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__223)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1553, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_87iterfind, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_iterfind, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__223)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterfind, __pyx_t_7) < 0) __PYX_ERR(0, 1553, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_iterfind, __pyx_t_7) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1566
+ /* "lxml/etree.pyx":1577
* return _elementpath.iterfind(self, path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
* smart_strings=True, **_variables):
* u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_89xpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_xpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1566, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_89xpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_xpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_xpath, __pyx_t_7) < 0) __PYX_ERR(0, 1566, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_xpath, __pyx_t_7) < 0) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1577
+ /* "lxml/etree.pyx":1588
* return evaluator(_path, **_variables)
*
* def cssselect(self, expr, *, translator='xml'): # <<<<<<<<<<<<<<
* """
* Run the CSS expression on this element and its children,
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_91cssselect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_cssselect, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1577, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_8_Element_91cssselect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Element_cssselect, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_cssselect, __pyx_t_7) < 0) __PYX_ERR(0, 1577, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Element->tp_dict, __pyx_n_s_cssselect, __pyx_t_7) < 0) __PYX_ERR(0, 1588, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Element);
- /* "lxml/etree.pyx":1627
+ /* "lxml/etree.pyx":1638
* raise TypeError, u"this element does not have children or attributes"
*
* def set(self, key, value): # <<<<<<<<<<<<<<
* u"set(self, key, value)"
* self._raiseImmutable()
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_1set, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_set, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_1set, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_set, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_set, __pyx_t_7) < 0) __PYX_ERR(0, 1627, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_set, __pyx_t_7) < 0) __PYX_ERR(0, 1638, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1631
+ /* "lxml/etree.pyx":1642
* self._raiseImmutable()
*
* def append(self, value): # <<<<<<<<<<<<<<
* u"append(self, value)"
* self._raiseImmutable()
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_3append, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_append, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1631, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_3append, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_append, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_append, __pyx_t_7) < 0) __PYX_ERR(0, 1631, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_append, __pyx_t_7) < 0) __PYX_ERR(0, 1642, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1635
+ /* "lxml/etree.pyx":1646
* self._raiseImmutable()
*
* def insert(self, index, value): # <<<<<<<<<<<<<<
* u"insert(self, index, value)"
* self._raiseImmutable()
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_5insert, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_insert, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1635, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_5insert, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_insert, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_insert, __pyx_t_7) < 0) __PYX_ERR(0, 1635, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_insert, __pyx_t_7) < 0) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1674
+ /* "lxml/etree.pyx":1685
* return 0
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"get(self, key, default=None)"
* return None
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_13get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_13get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_get, __pyx_t_7) < 0) __PYX_ERR(0, 1674, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_get, __pyx_t_7) < 0) __PYX_ERR(0, 1685, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1678
+ /* "lxml/etree.pyx":1689
* return None
*
* def keys(self): # <<<<<<<<<<<<<<
* u"keys(self)"
* return []
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_15keys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_keys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1678, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_15keys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_keys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1689, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_keys, __pyx_t_7) < 0) __PYX_ERR(0, 1678, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_keys, __pyx_t_7) < 0) __PYX_ERR(0, 1689, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1682
+ /* "lxml/etree.pyx":1693
* return []
*
* def items(self): # <<<<<<<<<<<<<<
* u"items(self)"
* return []
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_17items, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_items, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1682, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_17items, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_items, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1693, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_items, __pyx_t_7) < 0) __PYX_ERR(0, 1682, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_items, __pyx_t_7) < 0) __PYX_ERR(0, 1693, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1686
+ /* "lxml/etree.pyx":1697
* return []
*
* def values(self): # <<<<<<<<<<<<<<
* u"values(self)"
* return []
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_19values, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_values, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__241)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1686, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20__ContentOnlyElement_19values, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ContentOnlyElement_values, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__241)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1697, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_values, __pyx_t_7) < 0) __PYX_ERR(0, 1686, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree___ContentOnlyElement->tp_dict, __pyx_n_s_values, __pyx_t_7) < 0) __PYX_ERR(0, 1697, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree___ContentOnlyElement);
- /* "lxml/etree.pyx":1723
+ /* "lxml/etree.pyx":1734
* return "<?%s?>" % strrepr(self.target)
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""get(self, key, default=None)
*
*/
- __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_22_ProcessingInstruction_3get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ProcessingInstruction_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1723, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_22_ProcessingInstruction_3get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ProcessingInstruction_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1734, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ProcessingInstruction->tp_dict, __pyx_n_s_get, __pyx_t_7) < 0) __PYX_ERR(0, 1723, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ProcessingInstruction->tp_dict, __pyx_n_s_get, __pyx_t_7) < 0) __PYX_ERR(0, 1734, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ProcessingInstruction);
- /* "lxml/etree.pyx":1747
- * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+ /* "lxml/etree.pyx":1758
+ * for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
*
* cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall # <<<<<<<<<<<<<<
*
* cdef class _Entity(__ContentOnlyElement):
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1747, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_compile); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s_U); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_kp_u_s_w_s_s);
__Pyx_GIVEREF(__pyx_kp_u_s_w_s_s);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XGOTREF(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/etree.pyx":1867
+ /* "lxml/etree.pyx":1878
* return 0
*
* def parse(self, source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(self, source, parser=None, base_url=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_1parse, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_parse, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1867, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_1parse, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_parse, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1878, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_parse, __pyx_t_1) < 0) __PYX_ERR(0, 1867, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_parse, __pyx_t_1) < 0) __PYX_ERR(0, 1878, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":1883
+ /* "lxml/etree.pyx":1894
* return self._context_node
*
* def _setroot(self, _Element root not None): # <<<<<<<<<<<<<<
* u"""_setroot(self, root)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_3_setroot, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree__setroot, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__247)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1883, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_3_setroot, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree__setroot, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__247)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1894, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_setroot, __pyx_t_1) < 0) __PYX_ERR(0, 1883, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_setroot, __pyx_t_1) < 0) __PYX_ERR(0, 1894, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":1894
+ /* "lxml/etree.pyx":1905
* self._doc = None
*
* def getroot(self): # <<<<<<<<<<<<<<
* u"""getroot(self)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_5getroot, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getroot, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__249)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1894, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_5getroot, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getroot, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__249)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getroot, __pyx_t_1) < 0) __PYX_ERR(0, 1894, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getroot, __pyx_t_1) < 0) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":1901
+ /* "lxml/etree.pyx":1912
* return self._context_node
*
* def __copy__(self): # <<<<<<<<<<<<<<
* return _elementTreeFactory(self._doc, self._context_node)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_7__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree___copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1901, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_7__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree___copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__251)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_copy_2, __pyx_t_1) < 0) __PYX_ERR(0, 1901, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_copy_2, __pyx_t_1) < 0) __PYX_ERR(0, 1912, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":1904
+ /* "lxml/etree.pyx":1915
* return _elementTreeFactory(self._doc, self._context_node)
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* cdef _Element root
* cdef _Document doc
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_9__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree___deepcopy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1904, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_9__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree___deepcopy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_deepcopy, __pyx_t_1) < 0) __PYX_ERR(0, 1904, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_deepcopy, __pyx_t_1) < 0) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":1944
- * return None
+ /* "lxml/etree.pyx":1955
+ * return None
*
* def write(self, file, *, encoding=None, method=u"xml", # <<<<<<<<<<<<<<
* pretty_print=False, xml_declaration=None, with_tail=True,
* standalone=None, doctype=None, compression=0,
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_11write, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_write, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_11write, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_write, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_write, __pyx_t_1) < 0) __PYX_ERR(0, 1944, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_write, __pyx_t_1) < 0) __PYX_ERR(0, 1955, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2041
+ /* "lxml/etree.pyx":2052
* is_standalone, compression)
*
* def getpath(self, _Element element not None): # <<<<<<<<<<<<<<
* u"""getpath(self, element)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_13getpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2041, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_13getpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2052, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getpath, __pyx_t_1) < 0) __PYX_ERR(0, 2041, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getpath, __pyx_t_1) < 0) __PYX_ERR(0, 2052, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2079
+ /* "lxml/etree.pyx":2090
* return path
*
* def getelementpath(self, _Element element not None): # <<<<<<<<<<<<<<
* u"""getelementpath(self, element)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_15getelementpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getelementpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2079, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_15getelementpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getelementpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getelementpath, __pyx_t_1) < 0) __PYX_ERR(0, 2079, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getelementpath, __pyx_t_1) < 0) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2143
+ /* "lxml/etree.pyx":2154
* return '/'.join(path)
*
* def getiterator(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""getiterator(self, *tags, tag=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_17getiterator, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getiterator, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2143, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_17getiterator, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_getiterator, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getiterator, __pyx_t_1) < 0) __PYX_ERR(0, 2143, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_getiterator, __pyx_t_1) < 0) __PYX_ERR(0, 2154, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2167
+ /* "lxml/etree.pyx":2178
* return root.getiterator(*tags)
*
* def iter(self, tag=None, *tags): # <<<<<<<<<<<<<<
* u"""iter(self, tag=None, *tags)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_19iter, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_iter, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2167, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_19iter, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_iter, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2178, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_iter, __pyx_t_1) < 0) __PYX_ERR(0, 2167, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_iter, __pyx_t_1) < 0) __PYX_ERR(0, 2178, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2185
+ /* "lxml/etree.pyx":2196
* return root.iter(*tags)
*
* def find(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""find(self, path, namespaces=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_21find, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_find, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2185, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_21find, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_find, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 2185, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 2196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2202
+ /* "lxml/etree.pyx":2213
* return root.find(path, namespaces)
*
* def findtext(self, path, default=None, namespaces=None): # <<<<<<<<<<<<<<
* u"""findtext(self, path, default=None, namespaces=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_23findtext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_findtext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2202, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_23findtext, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_findtext, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2213, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_findtext, __pyx_t_1) < 0) __PYX_ERR(0, 2202, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_findtext, __pyx_t_1) < 0) __PYX_ERR(0, 2213, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2219
+ /* "lxml/etree.pyx":2230
* return root.findtext(path, default, namespaces)
*
* def findall(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""findall(self, path, namespaces=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_25findall, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_findall, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__269)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_25findall, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_findall, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__269)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2230, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_findall, __pyx_t_1) < 0) __PYX_ERR(0, 2219, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_findall, __pyx_t_1) < 0) __PYX_ERR(0, 2230, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2236
+ /* "lxml/etree.pyx":2247
* return root.findall(path, namespaces)
*
* def iterfind(self, path, namespaces=None): # <<<<<<<<<<<<<<
* u"""iterfind(self, path, namespaces=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_27iterfind, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_iterfind, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2236, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_27iterfind, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_iterfind, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2247, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_iterfind, __pyx_t_1) < 0) __PYX_ERR(0, 2236, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_iterfind, __pyx_t_1) < 0) __PYX_ERR(0, 2247, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2253
+ /* "lxml/etree.pyx":2264
* return root.iterfind(path, namespaces)
*
* def xpath(self, _path, *, namespaces=None, extensions=None, # <<<<<<<<<<<<<<
* smart_strings=True, **_variables):
* u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_29xpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__273)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2253, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_29xpath, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xpath, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__273)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xpath, __pyx_t_1) < 0) __PYX_ERR(0, 2253, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xpath, __pyx_t_1) < 0) __PYX_ERR(0, 2264, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2278
+ /* "lxml/etree.pyx":2289
* return evaluator(_path, **_variables)
*
* def xslt(self, _xslt, extensions=None, access_control=None, **_kw): # <<<<<<<<<<<<<<
* u"""xslt(self, _xslt, extensions=None, access_control=None, **_kw)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_31xslt, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xslt, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__275)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_31xslt, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xslt, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__275)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2289, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xslt_3, __pyx_t_1) < 0) __PYX_ERR(0, 2278, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xslt_3, __pyx_t_1) < 0) __PYX_ERR(0, 2289, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2297
+ /* "lxml/etree.pyx":2308
* return style(self, **_kw)
*
* def relaxng(self, relaxng): # <<<<<<<<<<<<<<
* u"""relaxng(self, relaxng)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_33relaxng, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_relaxng, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2297, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_33relaxng, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_relaxng, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_relaxng, __pyx_t_1) < 0) __PYX_ERR(0, 2297, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_relaxng, __pyx_t_1) < 0) __PYX_ERR(0, 2308, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2315
+ /* "lxml/etree.pyx":2326
* return schema.validate(self)
*
* def xmlschema(self, xmlschema): # <<<<<<<<<<<<<<
* u"""xmlschema(self, xmlschema)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_35xmlschema, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xmlschema, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__279)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2315, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_35xmlschema, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xmlschema, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__279)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2326, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xmlschema, __pyx_t_1) < 0) __PYX_ERR(0, 2315, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xmlschema, __pyx_t_1) < 0) __PYX_ERR(0, 2326, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2333
+ /* "lxml/etree.pyx":2344
* return schema.validate(self)
*
* def xinclude(self): # <<<<<<<<<<<<<<
* u"""xinclude(self)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_37xinclude, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xinclude, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__281)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2333, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_37xinclude, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_xinclude, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__281)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xinclude, __pyx_t_1) < 0) __PYX_ERR(0, 2333, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_xinclude, __pyx_t_1) < 0) __PYX_ERR(0, 2344, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2348
+ /* "lxml/etree.pyx":2359
* XInclude()(self._context_node)
*
* def write_c14n(self, file, *, exclusive=False, with_comments=True, # <<<<<<<<<<<<<<
* compression=0, inclusive_ns_prefixes=None):
* u"""write_c14n(self, file, exclusive=False, with_comments=True,
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_39write_c14n, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_write_c14n, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__283)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2348, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_12_ElementTree_39write_c14n, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ElementTree_write_c14n, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__283)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_write_c14n, __pyx_t_1) < 0) __PYX_ERR(0, 2348, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__ElementTree->tp_dict, __pyx_n_s_write_c14n, __pyx_t_1) < 0) __PYX_ERR(0, 2359, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__ElementTree);
- /* "lxml/etree.pyx":2412
+ /* "lxml/etree.pyx":2423
* _delAttribute(self._element, key)
*
* def update(self, sequence_or_dict): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* if isinstance(sequence_or_dict, (dict, _Attrib)):
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_7update, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_update, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__285)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2412, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_7update, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_update, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__285)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_update, __pyx_t_1) < 0) __PYX_ERR(0, 2412, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_update, __pyx_t_1) < 0) __PYX_ERR(0, 2423, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2419
+ /* "lxml/etree.pyx":2430
* _setAttributeValue(self._element, key, value)
*
* def pop(self, key, *default): # <<<<<<<<<<<<<<
* if len(default) > 1:
* raise TypeError, f"pop expected at most 2 arguments, got {len(default)+1}"
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_9pop, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_pop, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__287)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2419, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_9pop, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_pop, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__287)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_pop, __pyx_t_1) < 0) __PYX_ERR(0, 2419, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_pop, __pyx_t_1) < 0) __PYX_ERR(0, 2430, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2432
+ /* "lxml/etree.pyx":2443
* return result
*
* def clear(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* cdef xmlNode* c_node = self._element._c_node
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_11clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_clear, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2432, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_11clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_clear, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2443, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_clear, __pyx_t_1) < 0) __PYX_ERR(0, 2432, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_clear, __pyx_t_1) < 0) __PYX_ERR(0, 2443, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2443
+ /* "lxml/etree.pyx":2454
* return repr(dict( _collectAttributes(self._element._c_node, 3) ))
*
* def __copy__(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_15__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib___copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2443, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_15__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib___copy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_copy_2, __pyx_t_1) < 0) __PYX_ERR(0, 2443, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_copy_2, __pyx_t_1) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2447
+ /* "lxml/etree.pyx":2458
* return dict(_collectAttributes(self._element._c_node, 3))
*
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return dict(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_17__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib___deepcopy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2447, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_17__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib___deepcopy, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2458, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_deepcopy, __pyx_t_1) < 0) __PYX_ERR(0, 2447, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_deepcopy, __pyx_t_1) < 0) __PYX_ERR(0, 2458, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2477
+ /* "lxml/etree.pyx":2488
* return c
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _getAttributeValue(self._element, key, default)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_25get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2477, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_25get, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_get, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_get, __pyx_t_1) < 0) __PYX_ERR(0, 2477, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_get, __pyx_t_1) < 0) __PYX_ERR(0, 2488, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2481
+ /* "lxml/etree.pyx":2492
* return _getAttributeValue(self._element, key, default)
*
* def keys(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 1)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_27keys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_keys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2481, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_27keys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_keys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2492, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_keys, __pyx_t_1) < 0) __PYX_ERR(0, 2481, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_keys, __pyx_t_1) < 0) __PYX_ERR(0, 2492, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2489
+ /* "lxml/etree.pyx":2500
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def iterkeys(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 1))
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_31iterkeys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_iterkeys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2489, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_31iterkeys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_iterkeys, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2500, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_iterkeys, __pyx_t_1) < 0) __PYX_ERR(0, 2489, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_iterkeys, __pyx_t_1) < 0) __PYX_ERR(0, 2500, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2493
+ /* "lxml/etree.pyx":2504
* return iter(_collectAttributes(self._element._c_node, 1))
*
* def values(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 2)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_33values, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_values, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2493, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_33values, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_values, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_values, __pyx_t_1) < 0) __PYX_ERR(0, 2493, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_values, __pyx_t_1) < 0) __PYX_ERR(0, 2504, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2497
+ /* "lxml/etree.pyx":2508
* return _collectAttributes(self._element._c_node, 2)
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 2))
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_35itervalues, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_itervalues, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2497, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_35itervalues, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_itervalues, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_itervalues, __pyx_t_1) < 0) __PYX_ERR(0, 2497, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_itervalues, __pyx_t_1) < 0) __PYX_ERR(0, 2508, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2501
+ /* "lxml/etree.pyx":2512
* return iter(_collectAttributes(self._element._c_node, 2))
*
* def items(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return _collectAttributes(self._element._c_node, 3)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_37items, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_items, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__305)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2501, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_37items, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_items, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__305)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2512, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_items, __pyx_t_1) < 0) __PYX_ERR(0, 2501, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_items, __pyx_t_1) < 0) __PYX_ERR(0, 2512, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2505
+ /* "lxml/etree.pyx":2516
* return _collectAttributes(self._element._c_node, 3)
*
* def iteritems(self): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return iter(_collectAttributes(self._element._c_node, 3))
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_39iteritems, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_iteritems, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2505, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_39iteritems, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_iteritems, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_iteritems, __pyx_t_1) < 0) __PYX_ERR(0, 2505, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_iteritems, __pyx_t_1) < 0) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2509
+ /* "lxml/etree.pyx":2520
* return iter(_collectAttributes(self._element._c_node, 3))
*
* def has_key(self, key): # <<<<<<<<<<<<<<
* _assertValidNode(self._element)
* return key in self
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_41has_key, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_has_key, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2509, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7_Attrib_41has_key, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Attrib_has_key, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2520, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_has_key, __pyx_t_1) < 0) __PYX_ERR(0, 2509, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Attrib->tp_dict, __pyx_n_s_has_key, __pyx_t_1) < 0) __PYX_ERR(0, 2520, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Attrib);
- /* "lxml/etree.pyx":2986
+ /* "lxml/etree.pyx":2997
* # module-level API for ElementTree
*
* def Element(_tag, attrib=None, nsmap=None, **_extra): # <<<<<<<<<<<<<<
* u"""Element(_tag, attrib=None, nsmap=None, **_extra)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, 0, __pyx_n_s_Element, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2986, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, 0, __pyx_n_s_Element, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__312);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_Element, __pyx_t_1) < 0) __PYX_ERR(0, 2986, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_Element, __pyx_t_1) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3000
+ /* "lxml/etree.pyx":3011
*
*
* def Comment(text=None): # <<<<<<<<<<<<<<
* u"""Comment(text=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, 0, __pyx_n_s_Comment, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3000, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, 0, __pyx_n_s_Comment, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__315);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_Comment, __pyx_t_1) < 0) __PYX_ERR(0, 3000, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_Comment, __pyx_t_1) < 0) __PYX_ERR(0, 3011, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3024
+ /* "lxml/etree.pyx":3035
*
*
* def ProcessingInstruction(target, text=None): # <<<<<<<<<<<<<<
* u"""ProcessingInstruction(target, text=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, 0, __pyx_n_s_ProcessingInstruction, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3024, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, 0, __pyx_n_s_ProcessingInstruction, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__318);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_ProcessingInstruction, __pyx_t_1) < 0) __PYX_ERR(0, 3024, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_ProcessingInstruction, __pyx_t_1) < 0) __PYX_ERR(0, 3035, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3052
+ /* "lxml/etree.pyx":3063
* return _elementFactory(doc, c_node)
*
* PI = ProcessingInstruction # <<<<<<<<<<<<<<
*
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ProcessingInstruction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_PI, __pyx_t_1) < 0) __PYX_ERR(0, 3052, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_PI, __pyx_t_1) < 0) __PYX_ERR(0, 3063, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3077
+ /* "lxml/etree.pyx":3088
*
*
* def Entity(name): # <<<<<<<<<<<<<<
* u"""Entity(name)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, 0, __pyx_n_s_Entity, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__320)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3077, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, 0, __pyx_n_s_Entity, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__320)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_Entity, __pyx_t_1) < 0) __PYX_ERR(0, 3077, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_Entity, __pyx_t_1) < 0) __PYX_ERR(0, 3088, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3103
+ /* "lxml/etree.pyx":3114
*
*
* def SubElement(_Element _parent not None, _tag, # <<<<<<<<<<<<<<
* attrib=None, nsmap=None, **_extra):
* u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, 0, __pyx_n_s_SubElement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__322)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3103, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, 0, __pyx_n_s_SubElement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__322)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3114, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__323);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_SubElement, __pyx_t_1) < 0) __PYX_ERR(0, 3103, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_SubElement, __pyx_t_1) < 0) __PYX_ERR(0, 3114, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3113
+ /* "lxml/etree.pyx":3124
*
*
* def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""ElementTree(element=None, file=None, parser=None)
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3113, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_file, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3113, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parser, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3113, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, 0, __pyx_n_s_ElementTree, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_file, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3124, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parser, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3124, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, 0, __pyx_n_s_ElementTree, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__326);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_ElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 3113, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_ElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 3124, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":3139
+ /* "lxml/etree.pyx":3150
*
*
* def HTML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""HTML(text, parser=None, base_url=None)
*
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3139, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, 0, __pyx_n_s_HTML, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3139, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3150, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, 0, __pyx_n_s_HTML, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__329);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_HTML, __pyx_t_1) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_HTML, __pyx_t_1) < 0) __PYX_ERR(0, 3150, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3165
+ /* "lxml/etree.pyx":3176
*
*
* def XML(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""XML(text, parser=None, base_url=None)
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3165, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3165, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, 0, __pyx_n_s_XML, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3165, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3176, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, 0, __pyx_n_s_XML, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__332);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_XML, __pyx_t_2) < 0) __PYX_ERR(0, 3165, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_XML, __pyx_t_2) < 0) __PYX_ERR(0, 3176, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":3196
+ /* "lxml/etree.pyx":3207
*
*
* def fromstring(text, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""fromstring(text, parser=None, base_url=None)
*
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3196, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3196, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, 0, __pyx_n_s_fromstring, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3196, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3207, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, 0, __pyx_n_s_fromstring, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3207, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__335);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstring, __pyx_t_1) < 0) __PYX_ERR(0, 3196, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstring, __pyx_t_1) < 0) __PYX_ERR(0, 3207, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3217
+ /* "lxml/etree.pyx":3228
*
*
* def fromstringlist(strings, _BaseParser parser=None): # <<<<<<<<<<<<<<
* u"""fromstringlist(strings, parser=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, 0, __pyx_n_s_fromstringlist, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3217, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, 0, __pyx_n_s_fromstringlist, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__338);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstringlist, __pyx_t_1) < 0) __PYX_ERR(0, 3217, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstringlist, __pyx_t_1) < 0) __PYX_ERR(0, 3228, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3238
+ /* "lxml/etree.pyx":3249
*
*
* def iselement(element): # <<<<<<<<<<<<<<
* u"""iselement(element)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, 0, __pyx_n_s_iselement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3238, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, 0, __pyx_n_s_iselement, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3249, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_iselement, __pyx_t_1) < 0) __PYX_ERR(0, 3238, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_iselement, __pyx_t_1) < 0) __PYX_ERR(0, 3249, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3246
+ /* "lxml/etree.pyx":3257
*
*
* def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True): # <<<<<<<<<<<<<<
* u"""dump(elem, pretty_print=True, with_tail=True)
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3246, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3246, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pretty_print, __pyx_t_2) < 0) __PYX_ERR(0, 3246, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pretty_print, __pyx_t_2) < 0) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_with_tail, ((PyObject *)Py_True)) < 0) __PYX_ERR(0, 3246, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, 0, __pyx_n_s_dump, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3246, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_with_tail, ((PyObject *)Py_True)) < 0) __PYX_ERR(0, 3257, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, 0, __pyx_n_s_dump, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_dump, __pyx_t_2) < 0) __PYX_ERR(0, 3246, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_dump, __pyx_t_2) < 0) __PYX_ERR(0, 3257, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":3259
+ /* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3259, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_encoding, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_method, ((PyObject*)__pyx_n_s_xml)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xml_declaration, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_encoding, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_method, ((PyObject*)__pyx_n_s_xml)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xml_declaration, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
- /* "lxml/etree.pyx":3260
+ /* "lxml/etree.pyx":3271
*
* def tostring(element_or_tree, *, encoding=None, method="xml",
* xml_declaration=None, bint pretty_print=False, bint with_tail=True, # <<<<<<<<<<<<<<
* standalone=None, doctype=None,
* bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None):
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3260, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pretty_print, __pyx_t_1) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pretty_print, __pyx_t_1) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3260, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_with_tail, __pyx_t_1) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_with_tail, __pyx_t_1) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_standalone, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_doctype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_standalone, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_doctype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
- /* "lxml/etree.pyx":3262
+ /* "lxml/etree.pyx":3273
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
* bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None): # <<<<<<<<<<<<<<
* u"""tostring(element_or_tree, encoding=None, method="xml",
* xml_declaration=None, pretty_print=False, with_tail=True,
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3262, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_exclusive, __pyx_t_1) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_exclusive, __pyx_t_1) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3262, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3273, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_with_comments, __pyx_t_1) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_with_comments, __pyx_t_1) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_inclusive_ns_prefixes, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_inclusive_ns_prefixes, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
- /* "lxml/etree.pyx":3259
+ /* "lxml/etree.pyx":3270
*
*
* def tostring(element_or_tree, *, encoding=None, method="xml", # <<<<<<<<<<<<<<
* xml_declaration=None, bint pretty_print=False, bint with_tail=True,
* standalone=None, doctype=None,
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, 0, __pyx_n_s_tostring, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3259, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, 0, __pyx_n_s_tostring, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_tostring, __pyx_t_1) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_tostring, __pyx_t_1) < 0) __PYX_ERR(0, 3270, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3352
+ /* "lxml/etree.pyx":3363
*
*
* def tostringlist(element_or_tree, *args, **kwargs): # <<<<<<<<<<<<<<
* u"""tostringlist(element_or_tree, *args, **kwargs)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, 0, __pyx_n_s_tostringlist, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3352, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, 0, __pyx_n_s_tostringlist, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_tostringlist, __pyx_t_1) < 0) __PYX_ERR(0, 3352, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_tostringlist, __pyx_t_1) < 0) __PYX_ERR(0, 3363, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
* bint with_tail=True, doctype=None):
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3364, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_method, ((PyObject*)__pyx_n_u_xml)) < 0) __PYX_ERR(0, 3364, __pyx_L1_error)
- __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3364, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_method, ((PyObject*)__pyx_n_u_xml)) < 0) __PYX_ERR(0, 3375, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pretty_print, __pyx_t_2) < 0) __PYX_ERR(0, 3364, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pretty_print, __pyx_t_2) < 0) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":3365
+ /* "lxml/etree.pyx":3376
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
* bint with_tail=True, doctype=None): # <<<<<<<<<<<<<<
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
* with_tail=True, doctype=None)
*/
- __pyx_t_2 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3365, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3376, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_with_tail, __pyx_t_2) < 0) __PYX_ERR(0, 3364, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_with_tail, __pyx_t_2) < 0) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_doctype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3364, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_doctype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3375, __pyx_L1_error)
- /* "lxml/etree.pyx":3364
+ /* "lxml/etree.pyx":3375
*
*
* def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False, # <<<<<<<<<<<<<<
* bint with_tail=True, doctype=None):
* u"""tounicode(element_or_tree, method="xml", pretty_print=False,
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, 0, __pyx_n_s_tounicode, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3364, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, 0, __pyx_n_s_tounicode, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_tounicode, __pyx_t_2) < 0) __PYX_ERR(0, 3364, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_tounicode, __pyx_t_2) < 0) __PYX_ERR(0, 3375, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/etree.pyx":3398
+ /* "lxml/etree.pyx":3409
*
*
* def parse(source, _BaseParser parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(source, parser=None, base_url=None)
*
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3398, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3398, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, 0, __pyx_n_s_parse, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3398, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 3409, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, 0, __pyx_n_s_parse, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__351);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse, __pyx_t_1) < 0) __PYX_ERR(0, 3398, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse, __pyx_t_1) < 0) __PYX_ERR(0, 3409, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/etree.pyx":3430
+ /* "lxml/etree.pyx":3441
*
*
* def adopt_external_document(capsule, _BaseParser parser=None): # <<<<<<<<<<<<<<
* """adopt_external_document(capsule, parser=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_39adopt_external_document, 0, __pyx_n_s_adopt_external_document, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3430, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_39adopt_external_document, 0, __pyx_n_s_adopt_external_document, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3441, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__354);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_adopt_external_document, __pyx_t_1) < 0) __PYX_ERR(0, 3430, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_adopt_external_document, __pyx_t_1) < 0) __PYX_ERR(0, 3441, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* "src/lxml/readonlytree.pxi":160
PyType_Modified(__pyx_ptype_4lxml_5etree__ReadOnlyProxy);
/* "src/lxml/readonlytree.pxi":293
- * return None
+ * return None
*
* def get(self, key, default=None): # <<<<<<<<<<<<<<
* u"""Gets an element attribute.
xmlSetExternalEntityLoader(((xmlExternalEntityLoader)__pyx_f_4lxml_5etree__local_resolver));
/* "src/lxml/parser.pxi":961
- * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ * return u"libxml2 %d.%d.%d" % LIBXML_VERSION
*
* def setElementClassLookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
PyType_Modified(__pyx_ptype_4lxml_5etree__BaseParser);
/* "src/lxml/parser.pxi":1242
- * return self._getPushParserContext()._error_log.copy()
+ * return self._getPushParserContext()._error_log.copy()
*
* cpdef feed(self, data): # <<<<<<<<<<<<<<
* u"""feed(self, data)
PyType_Modified(__pyx_ptype_4lxml_5etree__MethodChanger);
/* "src/lxml/iterparse.pxi":148
- * return self._parser.version
+ * return self._parser.version
*
* def set_element_class_lookup(self, ElementClassLookup lookup = None): # <<<<<<<<<<<<<<
* u"""set_element_class_lookup(self, lookup = None)
PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
/* "src/lxml/xslt.pxi":435
- * return self._error_log.copy()
+ * return self._error_log.copy()
*
* @staticmethod # <<<<<<<<<<<<<<
* def strparam(strval):
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree_XSLTExtension);
- /* "lxml/etree.pyx":3511
+ /* "lxml/etree.pyx":3522
* self._error_log = _ErrorLog()
*
* def validate(self, etree): # <<<<<<<<<<<<<<
* u"""validate(self, etree)
*
*/
- __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_3validate, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_validate, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__609)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3511, __pyx_L1_error)
+ __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_3validate, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_validate, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__609)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3522, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_validate, __pyx_t_15) < 0) __PYX_ERR(0, 3511, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_validate, __pyx_t_15) < 0) __PYX_ERR(0, 3522, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Validator);
- /* "lxml/etree.pyx":3520
+ /* "lxml/etree.pyx":3531
* return self(etree)
*
* def assertValid(self, etree): # <<<<<<<<<<<<<<
* u"""assertValid(self, etree)
*
*/
- __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_5assertValid, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_assertValid, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__611)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3520, __pyx_L1_error)
+ __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_5assertValid, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_assertValid, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__611)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_assertValid, __pyx_t_15) < 0) __PYX_ERR(0, 3520, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_assertValid, __pyx_t_15) < 0) __PYX_ERR(0, 3531, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Validator);
- /* "lxml/etree.pyx":3530
+ /* "lxml/etree.pyx":3541
* self._error_log)
*
* def assert_(self, etree): # <<<<<<<<<<<<<<
* u"""assert_(self, etree)
*
*/
- __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_7assert_, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_assert, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__613)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3530, __pyx_L1_error)
+ __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_7assert_, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator_assert, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__613)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_assert, __pyx_t_15) < 0) __PYX_ERR(0, 3530, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_assert, __pyx_t_15) < 0) __PYX_ERR(0, 3541, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Validator);
- /* "lxml/etree.pyx":3539
+ /* "lxml/etree.pyx":3550
* u"Document does not comply with schema")
*
* cpdef _append_log_message(self, int domain, int type, int level, int line, # <<<<<<<<<<<<<<
* message, filename):
* self._error_log._receiveGeneric(domain, type, level, line, message,
*/
- __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_9_append_log_message, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator__append_log_message, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__615)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3539, __pyx_L1_error)
+ __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_9_append_log_message, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator__append_log_message, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__615)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_append_log_message, __pyx_t_15) < 0) __PYX_ERR(0, 3539, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_append_log_message, __pyx_t_15) < 0) __PYX_ERR(0, 3550, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Validator);
- /* "lxml/etree.pyx":3544
+ /* "lxml/etree.pyx":3555
* filename)
*
* cpdef _clear_error_log(self): # <<<<<<<<<<<<<<
* self._error_log.clear()
*
*/
- __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_11_clear_error_log, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator__clear_error_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__617)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3544, __pyx_L1_error)
+ __pyx_t_15 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10_Validator_11_clear_error_log, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Validator__clear_error_log, NULL, __pyx_n_s_lxml_etree, __pyx_d, ((PyObject *)__pyx_codeobj__617)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_clear_error_log, __pyx_t_15) < 0) __PYX_ERR(0, 3544, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree__Validator->tp_dict, __pyx_n_s_clear_error_log, __pyx_t_15) < 0) __PYX_ERR(0, 3555, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
PyType_Modified(__pyx_ptype_4lxml_5etree__Validator);
/* "src/lxml/dtd.pxi":163
- * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
+ * return funicode(self._c_node.defaultValue) if self._c_node.defaultValue is not NULL else None
*
* def itervalues(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
PyType_Modified(__pyx_ptype_4lxml_5etree__DTDAttributeDecl);
/* "src/lxml/dtd.pxi":223
- * return None
+ * return None
*
* def iterattributes(self): # <<<<<<<<<<<<<<
* _assertValidDTDNode(self, self._c_node)
PyType_Modified(__pyx_ptype_4lxml_5etree__DTDElementDecl);
/* "src/lxml/dtd.pxi":314
- * return funicodeOrNone(self._c_dtd.SystemID)
+ * return funicodeOrNone(self._c_dtd.SystemID)
*
* def iterelements(self): # <<<<<<<<<<<<<<
* cdef tree.xmlNode *c_node = self._c_dtd.children if self._c_dtd is not NULL else NULL
*/
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_XML_line_3165, __pyx_kp_u_XML_text_parser_None_base_url_No) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_XML_line_3176, __pyx_kp_u_XML_text_parser_None_base_url_No) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_FunctionNamespace_line_207, __pyx_kp_u_FunctionNamespace_ns_uri_Retriev) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
if (PyDict_SetItem(__pyx_d, __pyx_n_s_test_2, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
#else
#include <stdint.h>
#endif
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define GCC_DIAGNOSTIC
+#endif
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_xmlElementType(xmlElementType value, Py_ssize_t width, char padding_char, char format_char) {
char digits[sizeof(xmlElementType)*3+2];
char *dpos, *end = digits + sizeof(xmlElementType)*3+2;
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
xmlElementType remaining;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const xmlElementType neg_one = (xmlElementType) -1, const_zero = (xmlElementType) 0;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
#else
#include <stdint.h>
#endif
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define GCC_DIAGNOSTIC
+#endif
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
char digits[sizeof(Py_ssize_t)*3+2];
char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
Py_ssize_t remaining;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
#else
#include <stdint.h>
#endif
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define GCC_DIAGNOSTIC
+#endif
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) {
char digits[sizeof(int)*3+2];
char *dpos, *end = digits + sizeof(int)*3+2;
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
int remaining;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const int neg_one = (int) -1, const_zero = (int) 0;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
}
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#else
#include <stdint.h>
#endif
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define GCC_DIAGNOSTIC
+#endif
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_xmlXPathObjectType(xmlXPathObjectType value, Py_ssize_t width, char padding_char, char format_char) {
char digits[sizeof(xmlXPathObjectType)*3+2];
char *dpos, *end = digits + sizeof(xmlXPathObjectType)*3+2;
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
xmlXPathObjectType remaining;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const xmlXPathObjectType neg_one = (xmlXPathObjectType) -1, const_zero = (xmlXPathObjectType) 0;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
#ifndef __PYX_HAVE__lxml__etree
#define __PYX_HAVE__lxml__etree
PyObject *_tag;
};
-/* "lxml/etree.pyx":1847
+/* "lxml/etree.pyx":1858
*
*
* cdef public class _ElementTree [ type LxmlElementTreeType, # <<<<<<<<<<<<<<
struct LxmlElement *_context_node;
};
-/* "lxml/etree.pyx":2574
+/* "lxml/etree.pyx":2585
*
*
* cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher, # <<<<<<<<<<<<<<
char *_name;
};
-/* "lxml/etree.pyx":2605
+/* "lxml/etree.pyx":2616
* self._name = NULL
*
* cdef public class _ElementIterator(_ElementTagMatcher) [ # <<<<<<<<<<<<<<
if not root_name and (public_id or system_url):
raise ValueError, u"Could not find root node"
- property root_name:
- u"Returns the name of the root node as defined by the DOCTYPE."
- def __get__(self):
- root_name, public_id, system_url = self._doc.getdoctype()
- return root_name
+ @property
+ def root_name(self):
+ """Returns the name of the root node as defined by the DOCTYPE."""
+ root_name, public_id, system_url = self._doc.getdoctype()
+ return root_name
@cython.final
cdef tree.xmlDtd* _get_c_dtd(self):
- u"""Return the DTD. Create it if it does not yet exist."""
+ """"Return the DTD. Create it if it does not yet exist."""
cdef xmlDoc* c_doc = self._doc._c_doc
cdef xmlNode* c_root_node
cdef const_xmlChar* c_name
tree.xmlFree(<void*>c_dtd.SystemID)
c_dtd.SystemID = c_value
- property xml_version:
- u"Returns the XML version as declared by the document."
- def __get__(self):
- xml_version, encoding = self._doc.getxmlinfo()
- return xml_version
-
- property encoding:
- u"Returns the encoding name as declared by the document."
- def __get__(self):
- xml_version, encoding = self._doc.getxmlinfo()
- return encoding
-
- property standalone:
- u"""Returns the standalone flag as declared by the document. The possible
+ @property
+ def xml_version(self):
+ """Returns the XML version as declared by the document."""
+ xml_version, encoding = self._doc.getxmlinfo()
+ return xml_version
+
+ @property
+ def encoding(self):
+ """Returns the encoding name as declared by the document."""
+ xml_version, encoding = self._doc.getxmlinfo()
+ return encoding
+
+ @property
+ def standalone(self):
+ """Returns the standalone flag as declared by the document. The possible
values are True (``standalone='yes'``), False
(``standalone='no'`` or flag not provided in the declaration),
and None (unknown or no declaration found). Note that a
normal truth test on this value will always tell if the
``standalone`` flag was set to ``'yes'`` or not.
"""
- def __get__(self):
- return self._doc.isstandalone()
+ return self._doc.isstandalone()
property URL:
u"The source URL of the document (or None if unknown)."
if c_oldurl is not NULL:
tree.xmlFree(<void*>c_oldurl)
- property doctype:
- u"Returns a DOCTYPE declaration string for the document."
- def __get__(self):
- root_name, public_id, system_url = self._doc.getdoctype()
+ @property
+ def doctype(self):
+ """Returns a DOCTYPE declaration string for the document."""
+ root_name, public_id, system_url = self._doc.getdoctype()
+ if system_url:
+ # If '"' in system_url, we must escape it with single
+ # quotes, otherwise escape with double quotes. If url
+ # contains both a single quote and a double quote, XML
+ # standard is being violated.
+ if '"' in system_url:
+ quoted_system_url = f"'{system_url}'"
+ else:
+ quoted_system_url = f'"{system_url}"'
+ if public_id:
if system_url:
- # If '"' in system_url, we must escape it with single
- # quotes, otherwise escape with double quotes. If url
- # contains both a single quote and a double quote, XML
- # standard is being violated.
- if '"' in system_url:
- quoted_system_url = f"'{system_url}'"
- else:
- quoted_system_url = f'"{system_url}"'
- if public_id:
- if system_url:
- return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
- else:
- return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
- elif system_url:
- return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
- elif self._doc.hasdoctype():
- return f'<!DOCTYPE {root_name}>'
+ return f'<!DOCTYPE {root_name} PUBLIC "{public_id}" {quoted_system_url}>'
else:
- return u''
+ return f'<!DOCTYPE {root_name} PUBLIC "{public_id}">'
+ elif system_url:
+ return f'<!DOCTYPE {root_name} SYSTEM {quoted_system_url}>'
+ elif self._doc.hasdoctype():
+ return f'<!DOCTYPE {root_name}>'
+ else:
+ return u''
- property internalDTD:
- u"Returns a DTD validator based on the internal subset of the document."
- def __get__(self):
- return _dtdFactory(self._doc._c_doc.intSubset)
+ @property
+ def internalDTD(self):
+ """Returns a DTD validator based on the internal subset of the document."""
+ return _dtdFactory(self._doc._c_doc.intSubset)
- property externalDTD:
- u"Returns a DTD validator based on the external subset of the document."
- def __get__(self):
- return _dtdFactory(self._doc._c_doc.extSubset)
+ @property
+ def externalDTD(self):
+ """Returns a DTD validator based on the external subset of the document."""
+ return _dtdFactory(self._doc._c_doc.extSubset)
@cython.no_gc_clear
else:
self._doc._setNodeNs(self._c_node, _xcstr(ns))
- property attrib:
- u"""Element attribute dictionary. Where possible, use get(), set(),
+ @property
+ def attrib(self):
+ """Element attribute dictionary. Where possible, use get(), set(),
keys(), values() and items() to access element attributes.
"""
- def __get__(self):
- return _Attrib.__new__(_Attrib, self)
+ return _Attrib.__new__(_Attrib, self)
property text:
u"""Text before the first subelement. This is either a string or
# _setTailText(self._c_node, None)
# not in ElementTree, read-only
- property prefix:
- u"""Namespace prefix or None.
+ @property
+ def prefix(self):
+ """Namespace prefix or None.
"""
- def __get__(self):
- if self._c_node.ns is not NULL:
- if self._c_node.ns.prefix is not NULL:
- return funicode(self._c_node.ns.prefix)
- return None
+ if self._c_node.ns is not NULL:
+ if self._c_node.ns.prefix is not NULL:
+ return funicode(self._c_node.ns.prefix)
+ return None
# not in ElementTree, read-only
property sourceline:
self._c_node.line = line
# not in ElementTree, read-only
- property nsmap:
- u"""Namespace prefix->URI mapping known in the context of this
+ @property
+ def nsmap(self):
+ """Namespace prefix->URI mapping known in the context of this
Element. This includes all namespace declarations of the
parents.
Note that changing the returned dict has no effect on the Element.
"""
- def __get__(self):
- cdef xmlNode* c_node
- cdef xmlNs* c_ns
- _assertValidNode(self)
- nsmap = {}
- c_node = self._c_node
- while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
- c_ns = c_node.nsDef
- while c_ns is not NULL:
- prefix = funicodeOrNone(c_ns.prefix)
- if prefix not in nsmap:
- nsmap[prefix] = funicodeOrNone(c_ns.href)
- c_ns = c_ns.next
- c_node = c_node.parent
- return nsmap
+ cdef xmlNode* c_node
+ cdef xmlNs* c_ns
+ _assertValidNode(self)
+ nsmap = {}
+ c_node = self._c_node
+ while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
+ c_ns = c_node.nsDef
+ while c_ns is not NULL:
+ prefix = funicodeOrNone(c_ns.prefix)
+ if prefix not in nsmap:
+ nsmap[prefix] = funicodeOrNone(c_ns.href)
+ c_ns = c_ns.next
+ c_node = c_node.parent
+ return nsmap
# not in ElementTree, read-only
property base:
Can be restricted to find only elements with specific tags,
see `iter`.
"""
+ if preceding:
+ if self._c_node and not self._c_node.prev:
+ return ITER_EMPTY
+ elif self._c_node and not self._c_node.next:
+ return ITER_EMPTY
if tag is not None:
tags += (tag,)
return SiblingsIterator(self, tags, preceding=preceding)
Can be restricted to find only elements with specific tags,
see `iter`.
"""
+ if self._c_node and not self._c_node.parent:
+ return ITER_EMPTY
if tag is not None:
tags += (tag,)
return AncestorsIterator(self, tags)
itself. The returned elements can be restricted to find only elements
with specific tags, see `iter`.
"""
+ if self._c_node and not self._c_node.children:
+ return ITER_EMPTY
if tag is not None:
tags += (tag,)
return ElementDepthFirstIterator(self, tags, inclusive=False)
elements can be reversed with the 'reversed' keyword and restricted
to find only elements with specific tags, see `iter`.
"""
+ if self._c_node and not self._c_node.children:
+ return ITER_EMPTY
if tag is not None:
tags += (tag,)
return ElementChildIterator(self, tags, reversed=reversed)
u"__setitem__(self, index, value)"
self._raiseImmutable()
- property attrib:
- def __get__(self):
- return IMMUTABLE_EMPTY_MAPPING
+ @property
+ def attrib(self):
+ return IMMUTABLE_EMPTY_MAPPING
property text:
def __get__(self):
return []
cdef class _Comment(__ContentOnlyElement):
- property tag:
- def __get__(self):
- return Comment
+ @property
+ def tag(self):
+ return Comment
def __repr__(self):
return "<!--%s-->" % strrepr(self.text)
cdef class _ProcessingInstruction(__ContentOnlyElement):
- property tag:
- def __get__(self):
- return ProcessingInstruction
+ @property
+ def tag(self):
+ return ProcessingInstruction
property target:
# not in ElementTree
"""
return self.attrib.get(key, default)
- property attrib:
- u"""Returns a dict containing all pseudo-attributes that can be
+ @property
+ def attrib(self):
+ """Returns a dict containing all pseudo-attributes that can be
parsed from the text content of this processing instruction.
Note that modifying the dict currently has no effect on the
XML node, although this is not guaranteed to stay this way.
"""
- def __get__(self):
- return { attr : (value1 or value2)
- for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
+ return { attr : (value1 or value2)
+ for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
cdef class _Entity(__ContentOnlyElement):
- property tag:
- def __get__(self):
- return Entity
+ @property
+ def tag(self):
+ return Entity
property name:
# not in ElementTree
raise ValueError, f"Invalid entity name '{value}'"
tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
- property text:
+ @property
+ def text(self):
# FIXME: should this be None or '&[VALUE];' or the resolved
# entity value ?
- def __get__(self):
- _assertValidNode(self)
- return f'&{funicode(self._c_node.name)};'
+ _assertValidNode(self)
+ return f'&{funicode(self._c_node.name)};'
def __repr__(self):
return "&%s;" % strrepr(self.name)
return self
# not in ElementTree
- property docinfo:
- u"""Information about the document provided by parser and DTD."""
- def __get__(self):
- self._assertHasRoot()
- return DocInfo(self._context_node._doc)
+ @property
+ def docinfo(self):
+ """Information about the document provided by parser and DTD."""
+ self._assertHasRoot()
+ return DocInfo(self._context_node._doc)
# not in ElementTree, read-only
- property parser:
- u"""The parser that was used to parse the document in this ElementTree.
- """
- def __get__(self):
- if self._context_node is not None and \
- self._context_node._doc is not None:
- return self._context_node._doc._parser
- if self._doc is not None:
- return self._doc._parser
- return None
+ @property
+ def parser(self):
+ """The parser that was used to parse the document in this ElementTree.
+ """
+ if self._context_node is not None and \
+ self._context_node._doc is not None:
+ return self._context_node._doc._parser
+ if self._doc is not None:
+ return self._doc._parser
+ return None
def write(self, file, *, encoding=None, method=u"xml",
pretty_print=False, xml_declaration=None, with_tail=True,
cpdef _clear_error_log(self):
self._error_log.clear()
- property error_log:
- u"The log of validation errors and warnings."
- def __get__(self):
- assert self._error_log is not None, "XPath evaluator not initialised"
- return self._error_log.copy()
+ @property
+ def error_log(self):
+ """The log of validation errors and warnings."""
+ assert self._error_log is not None, "XPath evaluator not initialised"
+ return self._error_log.copy()
include "dtd.pxi" # DTD
include "relaxng.pxi" # RelaxNG
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
#ifndef __PYX_HAVE_API__lxml__etree
#define __PYX_HAVE_API__lxml__etree
# Python access to the XPath context for extension functions
- property context_node:
- def __get__(self):
- cdef xmlNode* c_node
- if self._xpathCtxt is NULL:
- raise XPathError, \
- u"XPath context is only usable during the evaluation"
- c_node = self._xpathCtxt.node
- if c_node is NULL:
- raise XPathError, u"no context node"
- if c_node.doc != self._xpathCtxt.doc:
- raise XPathError, \
- u"document-external context nodes are not supported"
- if self._doc is None:
- raise XPathError, u"document context is missing"
- return _elementFactory(self._doc, c_node)
-
- property eval_context:
- def __get__(self):
- if self._eval_context_dict is None:
- self._eval_context_dict = {}
- return self._eval_context_dict
+ @property
+ def context_node(self):
+ cdef xmlNode* c_node
+ if self._xpathCtxt is NULL:
+ raise XPathError, \
+ u"XPath context is only usable during the evaluation"
+ c_node = self._xpathCtxt.node
+ if c_node is NULL:
+ raise XPathError, u"no context node"
+ if c_node.doc != self._xpathCtxt.doc:
+ raise XPathError, \
+ u"document-external context nodes are not supported"
+ if self._doc is None:
+ raise XPathError, u"document context is missing"
+ return _elementFactory(self._doc, c_node)
+
+ @property
+ def eval_context(self):
+ if self._eval_context_dict is None:
+ self._eval_context_dict = {}
+ return self._eval_context_dict
# Python reference keeping during XPath function evaluation
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
static PyObject *__Pyx_GetBuiltinName(PyObject *name);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
(likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\
__Pyx__PyList_PopIndex(L, py_ix, ix) : (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix)))
#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
__Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\
__Pyx__PyList_PopIndex(L, py_ix, ix) : (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix)))
#else
#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\
__Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)
#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix))
#endif
}
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
const char* function_name);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
(likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\
__Pyx__PyList_PopIndex(L, py_ix, ix) : (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix)))
#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
__Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\
__Pyx__PyList_PopIndex(L, py_ix, ix) : (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix)))
#else
#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\
__Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)
#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\
- (unlikely(py_ix == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
+ (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\
__Pyx__PyObject_PopIndex(L, py_ix))
#endif
}
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "4.3.1"
+#define LXML_VERSION_STRING "4.3.2"
#endif
self._parser = parser
self._source = source
- property error_log:
- u"""The error log of the last (or current) parser run.
+ @property
+ def error_log(self):
+ """The error log of the last (or current) parser run.
"""
- def __get__(self):
- return self._parser.feed_error_log
+ return self._parser.feed_error_log
- property resolvers:
- u"""The custom resolver registry of the last (or current) parser run.
+ @property
+ def resolvers(self):
+ """The custom resolver registry of the last (or current) parser run.
"""
- def __get__(self):
- return self._parser.resolvers
+ return self._parser.resolvers
- property version:
- u"""The version of the underlying XML parser."""
- def __get__(self):
- return self._parser.version
+ @property
+ def version(self):
+ """The version of the underlying XML parser."""
+ return self._parser.version
def set_element_class_lookup(self, ElementClassLookup lookup = None):
u"""set_element_class_lookup(self, lookup = None)
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
#ifndef __PYX_HAVE__lxml__etree
#define __PYX_HAVE__lxml__etree
PyObject *_tag;
};
-/* "lxml/etree.pyx":1847
+/* "lxml/etree.pyx":1858
*
*
* cdef public class _ElementTree [ type LxmlElementTreeType, # <<<<<<<<<<<<<<
struct LxmlElement *_context_node;
};
-/* "lxml/etree.pyx":2574
+/* "lxml/etree.pyx":2585
*
*
* cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher, # <<<<<<<<<<<<<<
char *_name;
};
-/* "lxml/etree.pyx":2605
+/* "lxml/etree.pyx":2616
* self._name = NULL
*
* cdef public class _ElementIterator(_ElementTagMatcher) [ # <<<<<<<<<<<<<<
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
#ifndef __PYX_HAVE_API__lxml__etree
#define __PYX_HAVE_API__lxml__etree
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
};
-/* "lxml/objectify.pyx":809
- * return None
+/* "lxml/objectify.pyx":810
+ *
*
* cdef class BoolElement(IntElement): # <<<<<<<<<<<<<<
* u"""Boolean type base on string values: 'true' or 'false'.
};
-/* "lxml/objectify.pyx":895
+/* "lxml/objectify.pyx":896
* # Python type registry
*
* cdef class PyType: # <<<<<<<<<<<<<<
};
-/* "lxml/objectify.pyx":1125
+/* "lxml/objectify.pyx":1126
* @cython.final
* @cython.internal
* cdef class _ObjectifyElementMakerCaller: # <<<<<<<<<<<<<<
};
-/* "lxml/objectify.pyx":1215
+/* "lxml/objectify.pyx":1216
* cetree.setNodeText(elem._c_node, text)
*
* cdef class ElementMaker: # <<<<<<<<<<<<<<
};
-/* "lxml/objectify.pyx":1371
+/* "lxml/objectify.pyx":1372
* # Element class lookup
*
* cdef class ObjectifyElementClassLookup(ElementClassLookup): # <<<<<<<<<<<<<<
-/* "lxml/objectify.pyx":1215
+/* "lxml/objectify.pyx":1216
* cetree.setNodeText(elem._c_node, text)
*
* cdef class ElementMaker: # <<<<<<<<<<<<<<
#endif
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
* def __reduce__(self):
* return fromstring, (etree.tostring(self),) # <<<<<<<<<<<<<<
*
- * property text:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fromstring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error)
/* "lxml/objectify.pyx":166
*
- * property text:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node)
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node)
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":167
- * property text:
- * def __get__(self):
- * return textOf(self._c_node) # <<<<<<<<<<<<<<
+ * @property
+ * def text(self):
+ * return textOf(self._c_node) # <<<<<<<<<<<<<<
*
- * property __dict__:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error)
/* "lxml/objectify.pyx":166
*
- * property text:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node)
+ * @property
+ * def text(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node)
*
*/
return __pyx_r;
}
-/* "lxml/objectify.pyx":174
- * Note that this only considers the first child with a given name.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef _Element child
- * cdef dict children
+/* "lxml/objectify.pyx":170
+ *
+ * @property
+ * def __dict__(self): # <<<<<<<<<<<<<<
+ * """A fake implementation for __dict__ to support dir() etc.
+ *
*/
/* Python wrapper */
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":177
- * cdef _Element child
- * cdef dict children
- * c_ns = tree._getNs(self._c_node) # <<<<<<<<<<<<<<
- * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
- * children = {}
+ * cdef _Element child
+ * cdef dict children
+ * c_ns = tree._getNs(self._c_node) # <<<<<<<<<<<<<<
+ * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
+ * children = {}
*/
__pyx_v_c_ns = _getNs(__pyx_v_self->__pyx_base.__pyx_base._c_node);
/* "lxml/objectify.pyx":178
- * cdef dict children
- * c_ns = tree._getNs(self._c_node)
- * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None # <<<<<<<<<<<<<<
- * children = {}
- * for child in etree.ElementChildIterator(self, tag=tag):
+ * cdef dict children
+ * c_ns = tree._getNs(self._c_node)
+ * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None # <<<<<<<<<<<<<<
+ * children = {}
+ * for child in etree.ElementChildIterator(self, tag=tag):
*/
if (((__pyx_v_c_ns != NULL) != 0)) {
__pyx_t_2 = pyunicode(__pyx_v_c_ns); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 178, __pyx_L1_error)
__pyx_t_1 = 0;
/* "lxml/objectify.pyx":179
- * c_ns = tree._getNs(self._c_node)
- * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
- * children = {} # <<<<<<<<<<<<<<
- * for child in etree.ElementChildIterator(self, tag=tag):
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ * c_ns = tree._getNs(self._c_node)
+ * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
+ * children = {} # <<<<<<<<<<<<<<
+ * for child in etree.ElementChildIterator(self, tag=tag):
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
*/
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_1 = 0;
/* "lxml/objectify.pyx":180
- * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
- * children = {}
- * for child in etree.ElementChildIterator(self, tag=tag): # <<<<<<<<<<<<<<
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
- * continue
+ * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
+ * children = {}
+ * for child in etree.ElementChildIterator(self, tag=tag): # <<<<<<<<<<<<<<
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ * continue
*/
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_ElementChildIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 0;
/* "lxml/objectify.pyx":181
- * children = {}
- * for child in etree.ElementChildIterator(self, tag=tag):
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL: # <<<<<<<<<<<<<<
- * continue
- * name = pyunicode(child._c_node.name)
+ * children = {}
+ * for child in etree.ElementChildIterator(self, tag=tag):
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL: # <<<<<<<<<<<<<<
+ * continue
+ * name = pyunicode(child._c_node.name)
*/
__pyx_t_8 = ((__pyx_v_c_ns == NULL) != 0);
if (__pyx_t_8) {
if (__pyx_t_7) {
/* "lxml/objectify.pyx":182
- * for child in etree.ElementChildIterator(self, tag=tag):
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
- * continue # <<<<<<<<<<<<<<
- * name = pyunicode(child._c_node.name)
- * if name not in children:
+ * for child in etree.ElementChildIterator(self, tag=tag):
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ * continue # <<<<<<<<<<<<<<
+ * name = pyunicode(child._c_node.name)
+ * if name not in children:
*/
goto __pyx_L3_continue;
/* "lxml/objectify.pyx":181
- * children = {}
- * for child in etree.ElementChildIterator(self, tag=tag):
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL: # <<<<<<<<<<<<<<
- * continue
- * name = pyunicode(child._c_node.name)
+ * children = {}
+ * for child in etree.ElementChildIterator(self, tag=tag):
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL: # <<<<<<<<<<<<<<
+ * continue
+ * name = pyunicode(child._c_node.name)
*/
}
/* "lxml/objectify.pyx":183
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
- * continue
- * name = pyunicode(child._c_node.name) # <<<<<<<<<<<<<<
- * if name not in children:
- * children[name] = child
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ * continue
+ * name = pyunicode(child._c_node.name) # <<<<<<<<<<<<<<
+ * if name not in children:
+ * children[name] = child
*/
__pyx_t_4 = pyunicode(__pyx_v_child->_c_node->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_4 = 0;
/* "lxml/objectify.pyx":184
- * continue
- * name = pyunicode(child._c_node.name)
- * if name not in children: # <<<<<<<<<<<<<<
- * children[name] = child
- * return children
+ * continue
+ * name = pyunicode(child._c_node.name)
+ * if name not in children: # <<<<<<<<<<<<<<
+ * children[name] = child
+ * return children
*/
__pyx_t_7 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_children, Py_NE)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 184, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
/* "lxml/objectify.pyx":185
- * name = pyunicode(child._c_node.name)
- * if name not in children:
- * children[name] = child # <<<<<<<<<<<<<<
- * return children
+ * name = pyunicode(child._c_node.name)
+ * if name not in children:
+ * children[name] = child # <<<<<<<<<<<<<<
+ * return children
*
*/
if (unlikely(PyDict_SetItem(__pyx_v_children, __pyx_v_name, ((PyObject *)__pyx_v_child)) < 0)) __PYX_ERR(0, 185, __pyx_L1_error)
/* "lxml/objectify.pyx":184
- * continue
- * name = pyunicode(child._c_node.name)
- * if name not in children: # <<<<<<<<<<<<<<
- * children[name] = child
- * return children
+ * continue
+ * name = pyunicode(child._c_node.name)
+ * if name not in children: # <<<<<<<<<<<<<<
+ * children[name] = child
+ * return children
*/
}
/* "lxml/objectify.pyx":180
- * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
- * children = {}
- * for child in etree.ElementChildIterator(self, tag=tag): # <<<<<<<<<<<<<<
- * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
- * continue
+ * tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
+ * children = {}
+ * for child in etree.ElementChildIterator(self, tag=tag): # <<<<<<<<<<<<<<
+ * if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ * continue
*/
__pyx_L3_continue:;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "lxml/objectify.pyx":186
- * if name not in children:
- * children[name] = child
- * return children # <<<<<<<<<<<<<<
+ * if name not in children:
+ * children[name] = child
+ * return children # <<<<<<<<<<<<<<
*
* def __len__(self):
*/
__pyx_r = __pyx_v_children;
goto __pyx_L0;
- /* "lxml/objectify.pyx":174
- * Note that this only considers the first child with a given name.
- * """
- * def __get__(self): # <<<<<<<<<<<<<<
- * cdef _Element child
- * cdef dict children
+ /* "lxml/objectify.pyx":170
+ *
+ * @property
+ * def __dict__(self): # <<<<<<<<<<<<<<
+ * """A fake implementation for __dict__ to support dir() etc.
+ *
*/
/* function exit code */
}
/* "lxml/objectify.pyx":188
- * return children
+ * return children
*
* def __len__(self): # <<<<<<<<<<<<<<
* u"""Count self and siblings with the same tag.
goto __pyx_L0;
/* "lxml/objectify.pyx":188
- * return children
+ * return children
*
* def __len__(self): # <<<<<<<<<<<<<<
* u"""Count self and siblings with the same tag.
/* "lxml/objectify.pyx":598
* """
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node)
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node)
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":599
- * property pyval:
- * def __get__(self):
- * return textOf(self._c_node) # <<<<<<<<<<<<<<
+ * @property
+ * def pyval(self):
+ * return textOf(self._c_node) # <<<<<<<<<<<<<<
*
* def __str__(self):
*/
/* "lxml/objectify.pyx":598
* """
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node)
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node)
*
*/
}
/* "lxml/objectify.pyx":601
- * return textOf(self._c_node)
+ * return textOf(self._c_node)
*
* def __str__(self): # <<<<<<<<<<<<<<
* return textOf(self._c_node) or ''
goto __pyx_L0;
/* "lxml/objectify.pyx":601
- * return textOf(self._c_node)
+ * return textOf(self._c_node)
*
* def __str__(self): # <<<<<<<<<<<<<<
* return textOf(self._c_node) or ''
* """
* self._parse_value = function # <<<<<<<<<<<<<<
*
- * property pyval:
+ * @property
*/
__Pyx_INCREF(__pyx_v_function);
__Pyx_GIVEREF(__pyx_v_function);
/* "lxml/objectify.pyx":623
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _parseNumber(self)
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return _parseNumber(self)
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":624
- * property pyval:
- * def __get__(self):
- * return _parseNumber(self) # <<<<<<<<<<<<<<
+ * @property
+ * def pyval(self):
+ * return _parseNumber(self) # <<<<<<<<<<<<<<
*
* def __int__(self):
*/
/* "lxml/objectify.pyx":623
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return _parseNumber(self)
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return _parseNumber(self)
*
*/
}
/* "lxml/objectify.pyx":626
- * return _parseNumber(self)
+ * return _parseNumber(self)
*
* def __int__(self): # <<<<<<<<<<<<<<
* return int(_parseNumber(self))
goto __pyx_L0;
/* "lxml/objectify.pyx":626
- * return _parseNumber(self)
+ * return _parseNumber(self)
*
* def __int__(self): # <<<<<<<<<<<<<<
* return int(_parseNumber(self))
/* "lxml/objectify.pyx":730
* """
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node) or u''
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node) or u''
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":731
- * property pyval:
- * def __get__(self):
- * return textOf(self._c_node) or u'' # <<<<<<<<<<<<<<
+ * @property
+ * def pyval(self):
+ * return textOf(self._c_node) or u'' # <<<<<<<<<<<<<<
*
* def __repr__(self):
*/
/* "lxml/objectify.pyx":730
* """
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return textOf(self._c_node) or u''
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return textOf(self._c_node) or u''
*
*/
}
/* "lxml/objectify.pyx":733
- * return textOf(self._c_node) or u''
+ * return textOf(self._c_node) or u''
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return repr(textOf(self._c_node) or u'')
goto __pyx_L0;
/* "lxml/objectify.pyx":733
- * return textOf(self._c_node) or u''
+ * return textOf(self._c_node) or u''
*
* def __repr__(self): # <<<<<<<<<<<<<<
* return repr(textOf(self._c_node) or u'')
* def __hash__(self):
* return hash(None) # <<<<<<<<<<<<<<
*
- * property pyval:
+ * @property
*/
__pyx_t_1 = PyObject_Hash(Py_None); if (unlikely(__pyx_t_1 == ((Py_hash_t)-1))) __PYX_ERR(0, 803, __pyx_L1_error)
__pyx_r = __pyx_t_1;
/* "lxml/objectify.pyx":806
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return None
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return None
*
*/
__Pyx_RefNannySetupContext("__get__", 0);
/* "lxml/objectify.pyx":807
- * property pyval:
- * def __get__(self):
- * return None # <<<<<<<<<<<<<<
+ * @property
+ * def pyval(self):
+ * return None # <<<<<<<<<<<<<<
+ *
*
- * cdef class BoolElement(IntElement):
*/
__Pyx_XDECREF(__pyx_r);
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
/* "lxml/objectify.pyx":806
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return None
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return None
*
*/
return __pyx_r;
}
-/* "lxml/objectify.pyx":815
+/* "lxml/objectify.pyx":816
* Python's bool type.
* """
* def _init(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("_init", 0);
- /* "lxml/objectify.pyx":816
+ /* "lxml/objectify.pyx":817
* """
* def _init(self):
* self._parse_value = __parseBool # <<<<<<<<<<<<<<
*
* def __nonzero__(self):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parseBool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_parseBool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_self->__pyx_base.__pyx_base._parse_value);
__pyx_v_self->__pyx_base.__pyx_base._parse_value = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":815
+ /* "lxml/objectify.pyx":816
* Python's bool type.
* """
* def _init(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":818
+/* "lxml/objectify.pyx":819
* self._parse_value = __parseBool
*
* def __nonzero__(self): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("__nonzero__", 0);
- /* "lxml/objectify.pyx":819
+ /* "lxml/objectify.pyx":820
*
* def __nonzero__(self):
* return __parseBool(textOf(self._c_node)) # <<<<<<<<<<<<<<
*
* def __richcmp__(self, other, int op):
*/
- __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 819, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 819, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 820, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
goto __pyx_L0;
- /* "lxml/objectify.pyx":818
+ /* "lxml/objectify.pyx":819
* self._parse_value = __parseBool
*
* def __nonzero__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":821
+/* "lxml/objectify.pyx":822
* return __parseBool(textOf(self._c_node))
*
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("__richcmp__", 0);
- /* "lxml/objectify.pyx":822
+ /* "lxml/objectify.pyx":823
*
* def __richcmp__(self, other, int op):
* return _richcmpPyvals(self, other, op) # <<<<<<<<<<<<<<
* def __hash__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(((PyObject *)__pyx_v_self), __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 822, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(((PyObject *)__pyx_v_self), __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":821
+ /* "lxml/objectify.pyx":822
* return __parseBool(textOf(self._c_node))
*
* def __richcmp__(self, other, int op): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":824
+/* "lxml/objectify.pyx":825
* return _richcmpPyvals(self, other, op)
*
* def __hash__(self): # <<<<<<<<<<<<<<
Py_hash_t __pyx_t_3;
__Pyx_RefNannySetupContext("__hash__", 0);
- /* "lxml/objectify.pyx":825
+ /* "lxml/objectify.pyx":826
*
* def __hash__(self):
* return hash(__parseBool(textOf(self._c_node))) # <<<<<<<<<<<<<<
*
* def __str__(self):
*/
- __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 825, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 826, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_hash_t)-1))) __PYX_ERR(0, 825, __pyx_L1_error)
+ __pyx_t_3 = PyObject_Hash(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_hash_t)-1))) __PYX_ERR(0, 826, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
goto __pyx_L0;
- /* "lxml/objectify.pyx":824
+ /* "lxml/objectify.pyx":825
* return _richcmpPyvals(self, other, op)
*
* def __hash__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":827
+/* "lxml/objectify.pyx":828
* return hash(__parseBool(textOf(self._c_node)))
*
* def __str__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__str__", 0);
- /* "lxml/objectify.pyx":828
+ /* "lxml/objectify.pyx":829
*
* def __str__(self):
* return unicode(__parseBool(textOf(self._c_node))) # <<<<<<<<<<<<<<
* def __repr__(self):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 828, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 829, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":827
+ /* "lxml/objectify.pyx":828
* return hash(__parseBool(textOf(self._c_node)))
*
* def __str__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":830
+/* "lxml/objectify.pyx":831
* return unicode(__parseBool(textOf(self._c_node)))
*
* def __repr__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/objectify.pyx":831
+ /* "lxml/objectify.pyx":832
*
* def __repr__(self):
* return repr(__parseBool(textOf(self._c_node))) # <<<<<<<<<<<<<<
*
- * property pyval:
+ * @property
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 831, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 831, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 832, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 831, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
+ __pyx_t_3 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 832, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":830
+ /* "lxml/objectify.pyx":831
* return unicode(__parseBool(textOf(self._c_node)))
*
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":834
+/* "lxml/objectify.pyx":835
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return __parseBool(textOf(self._c_node))
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return __parseBool(textOf(self._c_node))
*
*/
int __pyx_t_2;
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/objectify.pyx":835
- * property pyval:
- * def __get__(self):
- * return __parseBool(textOf(self._c_node)) # <<<<<<<<<<<<<<
+ /* "lxml/objectify.pyx":836
+ * @property
+ * def pyval(self):
+ * return __parseBool(textOf(self._c_node)) # <<<<<<<<<<<<<<
*
* def __checkBool(s):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 835, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 835, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 836, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 835, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":834
+ /* "lxml/objectify.pyx":835
*
- * property pyval:
- * def __get__(self): # <<<<<<<<<<<<<<
- * return __parseBool(textOf(self._c_node))
+ * @property
+ * def pyval(self): # <<<<<<<<<<<<<<
+ * return __parseBool(textOf(self._c_node))
*
*/
return __pyx_r;
}
-/* "lxml/objectify.pyx":837
- * return __parseBool(textOf(self._c_node))
+/* "lxml/objectify.pyx":838
+ * return __parseBool(textOf(self._c_node))
*
* def __checkBool(s): # <<<<<<<<<<<<<<
* cdef int value = -1
int __pyx_t_3;
__Pyx_RefNannySetupContext("__checkBool", 0);
- /* "lxml/objectify.pyx":838
+ /* "lxml/objectify.pyx":839
*
* def __checkBool(s):
* cdef int value = -1 # <<<<<<<<<<<<<<
*/
__pyx_v_value = -1;
- /* "lxml/objectify.pyx":839
+ /* "lxml/objectify.pyx":840
* def __checkBool(s):
* cdef int value = -1
* if s is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":840
+ /* "lxml/objectify.pyx":841
* cdef int value = -1
* if s is not None:
* value = __parseBoolAsInt(s) # <<<<<<<<<<<<<<
* if value == -1:
* raise ValueError
*/
- __pyx_t_3 = __pyx_f_4lxml_9objectify___parseBoolAsInt(__pyx_v_s); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(0, 840, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_9objectify___parseBoolAsInt(__pyx_v_s); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(0, 841, __pyx_L1_error)
__pyx_v_value = __pyx_t_3;
- /* "lxml/objectify.pyx":839
+ /* "lxml/objectify.pyx":840
* def __checkBool(s):
* cdef int value = -1
* if s is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":841
+ /* "lxml/objectify.pyx":842
* if s is not None:
* value = __parseBoolAsInt(s)
* if value == -1: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_value == -1L) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/objectify.pyx":842
+ /* "lxml/objectify.pyx":843
* value = __parseBoolAsInt(s)
* if value == -1:
* raise ValueError # <<<<<<<<<<<<<<
* cpdef bint __parseBool(s) except -1:
*/
__Pyx_Raise(__pyx_builtin_ValueError, 0, 0, 0);
- __PYX_ERR(0, 842, __pyx_L1_error)
+ __PYX_ERR(0, 843, __pyx_L1_error)
- /* "lxml/objectify.pyx":841
+ /* "lxml/objectify.pyx":842
* if s is not None:
* value = __parseBoolAsInt(s)
* if value == -1: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":837
- * return __parseBool(textOf(self._c_node))
+ /* "lxml/objectify.pyx":838
+ * return __parseBool(textOf(self._c_node))
*
* def __checkBool(s): # <<<<<<<<<<<<<<
* cdef int value = -1
return __pyx_r;
}
-/* "lxml/objectify.pyx":844
+/* "lxml/objectify.pyx":845
* raise ValueError
*
* cpdef bint __parseBool(s) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_7 = NULL;
__Pyx_RefNannySetupContext("__parseBool", 0);
- /* "lxml/objectify.pyx":846
+ /* "lxml/objectify.pyx":847
* cpdef bint __parseBool(s) except -1:
* cdef int value
* if s is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":847
+ /* "lxml/objectify.pyx":848
* cdef int value
* if s is None:
* return False # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":846
+ /* "lxml/objectify.pyx":847
* cpdef bint __parseBool(s) except -1:
* cdef int value
* if s is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":848
+ /* "lxml/objectify.pyx":849
* if s is None:
* return False
* value = __parseBoolAsInt(s) # <<<<<<<<<<<<<<
* if value == -1:
* raise ValueError, f"Invalid boolean value: '{s}'"
*/
- __pyx_t_3 = __pyx_f_4lxml_9objectify___parseBoolAsInt(__pyx_v_s); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(0, 848, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_9objectify___parseBoolAsInt(__pyx_v_s); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(0, 849, __pyx_L1_error)
__pyx_v_value = __pyx_t_3;
- /* "lxml/objectify.pyx":849
+ /* "lxml/objectify.pyx":850
* return False
* value = __parseBoolAsInt(s)
* if value == -1: # <<<<<<<<<<<<<<
__pyx_t_2 = ((__pyx_v_value == -1L) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/objectify.pyx":850
+ /* "lxml/objectify.pyx":851
* value = __parseBoolAsInt(s)
* if value == -1:
* raise ValueError, f"Invalid boolean value: '{s}'" # <<<<<<<<<<<<<<
* return value
*
*/
- __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 850, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = 0;
__pyx_t_6 = 127;
__pyx_t_5 += 24;
__Pyx_GIVEREF(__pyx_kp_u_Invalid_boolean_value);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_Invalid_boolean_value);
- __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_s, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 850, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_s, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
__pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
__pyx_t_5 += 1;
__Pyx_GIVEREF(__pyx_kp_u__4);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u__4);
- __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 850, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 851, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_7, 0, 0);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __PYX_ERR(0, 850, __pyx_L1_error)
+ __PYX_ERR(0, 851, __pyx_L1_error)
- /* "lxml/objectify.pyx":849
+ /* "lxml/objectify.pyx":850
* return False
* value = __parseBoolAsInt(s)
* if value == -1: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":851
+ /* "lxml/objectify.pyx":852
* if value == -1:
* raise ValueError, f"Invalid boolean value: '{s}'"
* return value # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_value;
goto __pyx_L0;
- /* "lxml/objectify.pyx":844
+ /* "lxml/objectify.pyx":845
* raise ValueError
*
* cpdef bint __parseBool(s) except -1: # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__parseBool", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_9objectify___parseBool(__pyx_v_s, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 844, __pyx_L1_error)
- __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify___parseBool(__pyx_v_s, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 845, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
return __pyx_r;
}
-/* "lxml/objectify.pyx":853
+/* "lxml/objectify.pyx":854
* return value
*
* cdef inline int __parseBoolAsInt(text) except -2: # <<<<<<<<<<<<<<
int __pyx_t_1;
__Pyx_RefNannySetupContext("__parseBoolAsInt", 0);
- /* "lxml/objectify.pyx":854
+ /* "lxml/objectify.pyx":855
*
* cdef inline int __parseBoolAsInt(text) except -2:
* if text == 'false': # <<<<<<<<<<<<<<
* return 0
* elif text == 'true':
*/
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_n_s_false, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_n_s_false, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":855
+ /* "lxml/objectify.pyx":856
* cdef inline int __parseBoolAsInt(text) except -2:
* if text == 'false':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":854
+ /* "lxml/objectify.pyx":855
*
* cdef inline int __parseBoolAsInt(text) except -2:
* if text == 'false': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":856
+ /* "lxml/objectify.pyx":857
* if text == 'false':
* return 0
* elif text == 'true': # <<<<<<<<<<<<<<
* return 1
* elif text == '0':
*/
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_n_s_true, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 856, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_n_s_true, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 857, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":857
+ /* "lxml/objectify.pyx":858
* return 0
* elif text == 'true':
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/objectify.pyx":856
+ /* "lxml/objectify.pyx":857
* if text == 'false':
* return 0
* elif text == 'true': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":858
+ /* "lxml/objectify.pyx":859
* elif text == 'true':
* return 1
* elif text == '0': # <<<<<<<<<<<<<<
* return 0
* elif text == '1':
*/
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_kp_s_0, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 858, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_kp_s_0, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 859, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":859
+ /* "lxml/objectify.pyx":860
* return 1
* elif text == '0':
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":858
+ /* "lxml/objectify.pyx":859
* elif text == 'true':
* return 1
* elif text == '0': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":860
+ /* "lxml/objectify.pyx":861
* elif text == '0':
* return 0
* elif text == '1': # <<<<<<<<<<<<<<
* return 1
* return -1
*/
- __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_kp_s_1, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 860, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_text, __pyx_kp_s_1, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 861, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":861
+ /* "lxml/objectify.pyx":862
* return 0
* elif text == '1':
* return 1 # <<<<<<<<<<<<<<
__pyx_r = 1;
goto __pyx_L0;
- /* "lxml/objectify.pyx":860
+ /* "lxml/objectify.pyx":861
* elif text == '0':
* return 0
* elif text == '1': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":862
+ /* "lxml/objectify.pyx":863
* elif text == '1':
* return 1
* return -1 # <<<<<<<<<<<<<<
__pyx_r = -1;
goto __pyx_L0;
- /* "lxml/objectify.pyx":853
+ /* "lxml/objectify.pyx":854
* return value
*
* cdef inline int __parseBoolAsInt(text) except -2: # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":864
+/* "lxml/objectify.pyx":865
* return -1
*
* cdef object _parseNumber(NumberElement element): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("_parseNumber", 0);
- /* "lxml/objectify.pyx":865
+ /* "lxml/objectify.pyx":866
*
* cdef object _parseNumber(NumberElement element):
* return element._parse_value(textOf(element._c_node)) # <<<<<<<<<<<<<<
* cdef object _strValueOf(obj):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = textOf(__pyx_v_element->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 865, __pyx_L1_error)
+ __pyx_t_2 = textOf(__pyx_v_element->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_element->_parse_value);
__pyx_t_3 = __pyx_v_element->_parse_value; __pyx_t_4 = NULL;
__pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 865, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":864
+ /* "lxml/objectify.pyx":865
* return -1
*
* cdef object _parseNumber(NumberElement element): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":867
+/* "lxml/objectify.pyx":868
* return element._parse_value(textOf(element._c_node))
*
* cdef object _strValueOf(obj): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("_strValueOf", 0);
- /* "lxml/objectify.pyx":868
+ /* "lxml/objectify.pyx":869
*
* cdef object _strValueOf(obj):
* if python._isString(obj): # <<<<<<<<<<<<<<
__pyx_t_1 = (_isString(__pyx_v_obj) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":869
+ /* "lxml/objectify.pyx":870
* cdef object _strValueOf(obj):
* if python._isString(obj):
* return obj # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_obj;
goto __pyx_L0;
- /* "lxml/objectify.pyx":868
+ /* "lxml/objectify.pyx":869
*
* cdef object _strValueOf(obj):
* if python._isString(obj): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":870
+ /* "lxml/objectify.pyx":871
* if python._isString(obj):
* return obj
* if isinstance(obj, _Element): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":871
+ /* "lxml/objectify.pyx":872
* return obj
* if isinstance(obj, _Element):
* return textOf((<_Element>obj)._c_node) or u'' # <<<<<<<<<<<<<<
* return u''
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 871, __pyx_L1_error)
+ __pyx_t_4 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 872, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 871, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 872, __pyx_L1_error)
if (!__pyx_t_2) {
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":870
+ /* "lxml/objectify.pyx":871
* if python._isString(obj):
* return obj
* if isinstance(obj, _Element): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":872
+ /* "lxml/objectify.pyx":873
* if isinstance(obj, _Element):
* return textOf((<_Element>obj)._c_node) or u''
* if obj is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":873
+ /* "lxml/objectify.pyx":874
* return textOf((<_Element>obj)._c_node) or u''
* if obj is None:
* return u'' # <<<<<<<<<<<<<<
__pyx_r = __pyx_kp_u_;
goto __pyx_L0;
- /* "lxml/objectify.pyx":872
+ /* "lxml/objectify.pyx":873
* if isinstance(obj, _Element):
* return textOf((<_Element>obj)._c_node) or u''
* if obj is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":874
+ /* "lxml/objectify.pyx":875
* if obj is None:
* return u''
* return unicode(obj) # <<<<<<<<<<<<<<
* cdef object _numericValueOf(obj):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 874, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 875, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":867
+ /* "lxml/objectify.pyx":868
* return element._parse_value(textOf(element._c_node))
*
* cdef object _strValueOf(obj): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":876
+/* "lxml/objectify.pyx":877
* return unicode(obj)
*
* cdef object _numericValueOf(obj): # <<<<<<<<<<<<<<
int __pyx_t_7;
__Pyx_RefNannySetupContext("_numericValueOf", 0);
- /* "lxml/objectify.pyx":877
+ /* "lxml/objectify.pyx":878
*
* cdef object _numericValueOf(obj):
* if isinstance(obj, NumberElement): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":878
+ /* "lxml/objectify.pyx":879
* cdef object _numericValueOf(obj):
* if isinstance(obj, NumberElement):
* return _parseNumber(<NumberElement>obj) # <<<<<<<<<<<<<<
* # not always numeric, but Python will raise the right exception
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 878, __pyx_L1_error)
+ __pyx_t_3 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 879, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":877
+ /* "lxml/objectify.pyx":878
*
* cdef object _numericValueOf(obj):
* if isinstance(obj, NumberElement): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":879
+ /* "lxml/objectify.pyx":880
* if isinstance(obj, NumberElement):
* return _parseNumber(<NumberElement>obj)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_6);
/*try:*/ {
- /* "lxml/objectify.pyx":881
+ /* "lxml/objectify.pyx":882
* try:
* # not always numeric, but Python will raise the right exception
* return obj.pyval # <<<<<<<<<<<<<<
* pass
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_pyval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 881, __pyx_L4_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s_pyval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 882, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L8_try_return;
- /* "lxml/objectify.pyx":879
+ /* "lxml/objectify.pyx":880
* if isinstance(obj, NumberElement):
* return _parseNumber(<NumberElement>obj)
* try: # <<<<<<<<<<<<<<
__pyx_L4_error:;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":882
+ /* "lxml/objectify.pyx":883
* # not always numeric, but Python will raise the right exception
* return obj.pyval
* except AttributeError: # <<<<<<<<<<<<<<
goto __pyx_L6_except_error;
__pyx_L6_except_error:;
- /* "lxml/objectify.pyx":879
+ /* "lxml/objectify.pyx":880
* if isinstance(obj, NumberElement):
* return _parseNumber(<NumberElement>obj)
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
}
- /* "lxml/objectify.pyx":884
+ /* "lxml/objectify.pyx":885
* except AttributeError:
* pass
* return obj # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_obj;
goto __pyx_L0;
- /* "lxml/objectify.pyx":876
+ /* "lxml/objectify.pyx":877
* return unicode(obj)
*
* cdef object _numericValueOf(obj): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":886
+/* "lxml/objectify.pyx":887
* return obj
*
* cdef _richcmpPyvals(left, right, int op): # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_left);
__Pyx_INCREF(__pyx_v_right);
- /* "lxml/objectify.pyx":887
+ /* "lxml/objectify.pyx":888
*
* cdef _richcmpPyvals(left, right, int op):
* left = getattr(left, 'pyval', left) # <<<<<<<<<<<<<<
* right = getattr(right, 'pyval', right)
* return python.PyObject_RichCompare(left, right, op)
*/
- __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_left, __pyx_n_s_pyval, __pyx_v_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 887, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_left, __pyx_n_s_pyval, __pyx_v_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_left, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":888
+ /* "lxml/objectify.pyx":889
* cdef _richcmpPyvals(left, right, int op):
* left = getattr(left, 'pyval', left)
* right = getattr(right, 'pyval', right) # <<<<<<<<<<<<<<
* return python.PyObject_RichCompare(left, right, op)
*
*/
- __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_right, __pyx_n_s_pyval, __pyx_v_right); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 888, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_right, __pyx_n_s_pyval, __pyx_v_right); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 889, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_right, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":889
+ /* "lxml/objectify.pyx":890
* left = getattr(left, 'pyval', left)
* right = getattr(right, 'pyval', right)
* return python.PyObject_RichCompare(left, right, op) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_RichCompare(__pyx_v_left, __pyx_v_right, __pyx_v_op); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 889, __pyx_L1_error)
+ __pyx_t_1 = PyObject_RichCompare(__pyx_v_left, __pyx_v_right, __pyx_v_op); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":886
+ /* "lxml/objectify.pyx":887
* return obj
*
* cdef _richcmpPyvals(left, right, int op): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":920
+/* "lxml/objectify.pyx":921
* cdef object _type
* cdef list _schema_types
* def __init__(self, name, type_check, type_class, stringify=None): # <<<<<<<<<<<<<<
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_check)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); __PYX_ERR(0, 920, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_class)) != 0)) kw_args--;
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); __PYX_ERR(0, 920, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); __PYX_ERR(0, 921, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 920, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 920, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.PyType.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_name);
__Pyx_INCREF(__pyx_v_stringify);
- /* "lxml/objectify.pyx":921
+ /* "lxml/objectify.pyx":922
* cdef list _schema_types
* def __init__(self, name, type_check, type_class, stringify=None):
* if isinstance(name, bytes): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":922
+ /* "lxml/objectify.pyx":923
* def __init__(self, name, type_check, type_class, stringify=None):
* if isinstance(name, bytes):
* name = (<bytes>name).decode('ascii') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_name == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(0, 922, __pyx_L1_error)
+ __PYX_ERR(0, 923, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_decode_bytes(((PyObject*)__pyx_v_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":921
+ /* "lxml/objectify.pyx":922
* cdef list _schema_types
* def __init__(self, name, type_check, type_class, stringify=None):
* if isinstance(name, bytes): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":923
+ /* "lxml/objectify.pyx":924
* if isinstance(name, bytes):
* name = (<bytes>name).decode('ascii')
* elif not isinstance(name, unicode): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
if (unlikely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":924
+ /* "lxml/objectify.pyx":925
* name = (<bytes>name).decode('ascii')
* elif not isinstance(name, unicode):
* raise TypeError, u"Type name must be a string" # <<<<<<<<<<<<<<
* raise TypeError, u"Type check function must be callable (or None)"
*/
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_Type_name_must_be_a_string, 0, 0);
- __PYX_ERR(0, 924, __pyx_L1_error)
+ __PYX_ERR(0, 925, __pyx_L1_error)
- /* "lxml/objectify.pyx":923
+ /* "lxml/objectify.pyx":924
* if isinstance(name, bytes):
* name = (<bytes>name).decode('ascii')
* elif not isinstance(name, unicode): # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/objectify.pyx":925
+ /* "lxml/objectify.pyx":926
* elif not isinstance(name, unicode):
* raise TypeError, u"Type name must be a string"
* if type_check is not None and not callable(type_check): # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_4;
goto __pyx_L5_bool_binop_done;
}
- __pyx_t_4 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 925, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 926, __pyx_L1_error)
__pyx_t_2 = ((!(__pyx_t_4 != 0)) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L5_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":926
+ /* "lxml/objectify.pyx":927
* raise TypeError, u"Type name must be a string"
* if type_check is not None and not callable(type_check):
* raise TypeError, u"Type check function must be callable (or None)" # <<<<<<<<<<<<<<
* not issubclass(type_class, ObjectifiedDataElement):
*/
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_Type_check_function_must_be_call, 0, 0);
- __PYX_ERR(0, 926, __pyx_L1_error)
+ __PYX_ERR(0, 927, __pyx_L1_error)
- /* "lxml/objectify.pyx":925
+ /* "lxml/objectify.pyx":926
* elif not isinstance(name, unicode):
* raise TypeError, u"Type name must be a string"
* if type_check is not None and not callable(type_check): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":927
+ /* "lxml/objectify.pyx":928
* if type_check is not None and not callable(type_check):
* raise TypeError, u"Type check function must be callable (or None)"
* if name != TREE_PYTYPE_NAME and \ # <<<<<<<<<<<<<<
* not issubclass(type_class, ObjectifiedDataElement):
* raise TypeError, \
*/
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L8_bool_binop_done;
}
- /* "lxml/objectify.pyx":928
+ /* "lxml/objectify.pyx":929
* raise TypeError, u"Type check function must be callable (or None)"
* if name != TREE_PYTYPE_NAME and \
* not issubclass(type_class, ObjectifiedDataElement): # <<<<<<<<<<<<<<
* raise TypeError, \
* u"Data classes must inherit from ObjectifiedDataElement"
*/
- __pyx_t_2 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 928, __pyx_L1_error)
+ __pyx_t_2 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 929, __pyx_L1_error)
__pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0);
__pyx_t_1 = __pyx_t_4;
__pyx_L8_bool_binop_done:;
- /* "lxml/objectify.pyx":927
+ /* "lxml/objectify.pyx":928
* if type_check is not None and not callable(type_check):
* raise TypeError, u"Type check function must be callable (or None)"
* if name != TREE_PYTYPE_NAME and \ # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":929
+ /* "lxml/objectify.pyx":930
* if name != TREE_PYTYPE_NAME and \
* not issubclass(type_class, ObjectifiedDataElement):
* raise TypeError, \ # <<<<<<<<<<<<<<
* self.name = name
*/
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_Data_classes_must_inherit_from_O, 0, 0);
- __PYX_ERR(0, 929, __pyx_L1_error)
+ __PYX_ERR(0, 930, __pyx_L1_error)
- /* "lxml/objectify.pyx":927
+ /* "lxml/objectify.pyx":928
* if type_check is not None and not callable(type_check):
* raise TypeError, u"Type check function must be callable (or None)"
* if name != TREE_PYTYPE_NAME and \ # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":931
+ /* "lxml/objectify.pyx":932
* raise TypeError, \
* u"Data classes must inherit from ObjectifiedDataElement"
* self.name = name # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->name);
__pyx_v_self->name = __pyx_v_name;
- /* "lxml/objectify.pyx":932
+ /* "lxml/objectify.pyx":933
* u"Data classes must inherit from ObjectifiedDataElement"
* self.name = name
* self._type = type_class # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->_type);
__pyx_v_self->_type = __pyx_v_type_class;
- /* "lxml/objectify.pyx":933
+ /* "lxml/objectify.pyx":934
* self.name = name
* self._type = type_class
* self.type_check = type_check # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->type_check);
__pyx_v_self->type_check = __pyx_v_type_check;
- /* "lxml/objectify.pyx":934
+ /* "lxml/objectify.pyx":935
* self._type = type_class
* self.type_check = type_check
* if stringify is None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_1 != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":935
+ /* "lxml/objectify.pyx":936
* self.type_check = type_check
* if stringify is None:
* stringify = unicode # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
__Pyx_DECREF_SET(__pyx_v_stringify, ((PyObject *)(&PyUnicode_Type)));
- /* "lxml/objectify.pyx":934
+ /* "lxml/objectify.pyx":935
* self._type = type_class
* self.type_check = type_check
* if stringify is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":936
+ /* "lxml/objectify.pyx":937
* if stringify is None:
* stringify = unicode
* self.stringify = stringify # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->stringify);
__pyx_v_self->stringify = __pyx_v_stringify;
- /* "lxml/objectify.pyx":937
+ /* "lxml/objectify.pyx":938
* stringify = unicode
* self.stringify = stringify
* self._schema_types = [] # <<<<<<<<<<<<<<
*
* def __repr__(self):
*/
- __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 937, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_schema_types);
__pyx_v_self->_schema_types = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":920
+ /* "lxml/objectify.pyx":921
* cdef object _type
* cdef list _schema_types
* def __init__(self, name, type_check, type_class, stringify=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":939
+/* "lxml/objectify.pyx":940
* self._schema_types = []
*
* def __repr__(self): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__repr__", 0);
- /* "lxml/objectify.pyx":940
+ /* "lxml/objectify.pyx":941
*
* def __repr__(self):
* return "PyType(%s, %s)" % (self.name, self._type.__name__) # <<<<<<<<<<<<<<
* def register(self, before=None, after=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_type, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 940, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_type, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 940, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_self->name);
__Pyx_GIVEREF(__pyx_v_self->name);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_PyType_s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 940, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_PyType_s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":939
+ /* "lxml/objectify.pyx":940
* self._schema_types = []
*
* def __repr__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":942
+/* "lxml/objectify.pyx":943
* return "PyType(%s, %s)" % (self.name, self._type.__name__)
*
* def register(self, before=None, after=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register") < 0)) __PYX_ERR(0, 942, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register") < 0)) __PYX_ERR(0, 943, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("register", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 942, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("register", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 943, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.PyType.register", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_before);
__Pyx_INCREF(__pyx_v_after);
- /* "lxml/objectify.pyx":952
+ /* "lxml/objectify.pyx":953
* ignored. Raises ValueError if the dependencies cannot be fulfilled.
* """
* if self.name == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
* raise ValueError, u"Cannot register tree type"
* if self.type_check is not None:
*/
- __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 952, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 953, __pyx_L1_error)
if (unlikely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":953
+ /* "lxml/objectify.pyx":954
* """
* if self.name == TREE_PYTYPE_NAME:
* raise ValueError, u"Cannot register tree type" # <<<<<<<<<<<<<<
* for item in _TYPE_CHECKS:
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_Cannot_register_tree_type, 0, 0);
- __PYX_ERR(0, 953, __pyx_L1_error)
+ __PYX_ERR(0, 954, __pyx_L1_error)
- /* "lxml/objectify.pyx":952
+ /* "lxml/objectify.pyx":953
* ignored. Raises ValueError if the dependencies cannot be fulfilled.
* """
* if self.name == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":954
+ /* "lxml/objectify.pyx":955
* if self.name == TREE_PYTYPE_NAME:
* raise ValueError, u"Cannot register tree type"
* if self.type_check is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":955
+ /* "lxml/objectify.pyx":956
* raise ValueError, u"Cannot register tree type"
* if self.type_check is not None:
* for item in _TYPE_CHECKS: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 955, __pyx_L1_error)
+ __PYX_ERR(0, 956, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_4lxml_9objectify__TYPE_CHECKS; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 955, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 956, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 955, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 956, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":956
+ /* "lxml/objectify.pyx":957
* if self.type_check is not None:
* for item in _TYPE_CHECKS:
* if item[0] is self.type_check: # <<<<<<<<<<<<<<
* _TYPE_CHECKS.remove(item)
* break
*/
- __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 956, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = (__pyx_t_5 == __pyx_v_self->type_check);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":957
+ /* "lxml/objectify.pyx":958
* for item in _TYPE_CHECKS:
* if item[0] is self.type_check:
* _TYPE_CHECKS.remove(item) # <<<<<<<<<<<<<<
* break
* entry = (self.type_check, self)
*/
- __pyx_t_5 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_v_item); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_v_item); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":958
+ /* "lxml/objectify.pyx":959
* if item[0] is self.type_check:
* _TYPE_CHECKS.remove(item)
* break # <<<<<<<<<<<<<<
*/
goto __pyx_L6_break;
- /* "lxml/objectify.pyx":956
+ /* "lxml/objectify.pyx":957
* if self.type_check is not None:
* for item in _TYPE_CHECKS:
* if item[0] is self.type_check: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":955
+ /* "lxml/objectify.pyx":956
* raise ValueError, u"Cannot register tree type"
* if self.type_check is not None:
* for item in _TYPE_CHECKS: # <<<<<<<<<<<<<<
__pyx_L6_break:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":959
+ /* "lxml/objectify.pyx":960
* _TYPE_CHECKS.remove(item)
* break
* entry = (self.type_check, self) # <<<<<<<<<<<<<<
* first_pos = 0
* last_pos = -1
*/
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 959, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 960, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_self->type_check);
__Pyx_GIVEREF(__pyx_v_self->type_check);
__pyx_v_entry = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":960
+ /* "lxml/objectify.pyx":961
* break
* entry = (self.type_check, self)
* first_pos = 0 # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_int_0);
__pyx_v_first_pos = __pyx_int_0;
- /* "lxml/objectify.pyx":961
+ /* "lxml/objectify.pyx":962
* entry = (self.type_check, self)
* first_pos = 0
* last_pos = -1 # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_int_neg_1);
__pyx_v_last_pos = __pyx_int_neg_1;
- /* "lxml/objectify.pyx":962
+ /* "lxml/objectify.pyx":963
* first_pos = 0
* last_pos = -1
* if before or after: # <<<<<<<<<<<<<<
* if before is None:
* before = ()
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_before); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 962, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_before); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 963, __pyx_L1_error)
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L9_bool_binop_done;
}
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 962, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 963, __pyx_L1_error)
__pyx_t_1 = __pyx_t_2;
__pyx_L9_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":963
+ /* "lxml/objectify.pyx":964
* last_pos = -1
* if before or after:
* if before is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":964
+ /* "lxml/objectify.pyx":965
* if before or after:
* if before is None:
* before = () # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_empty_tuple);
__Pyx_DECREF_SET(__pyx_v_before, __pyx_empty_tuple);
- /* "lxml/objectify.pyx":963
+ /* "lxml/objectify.pyx":964
* last_pos = -1
* if before or after:
* if before is None: # <<<<<<<<<<<<<<
goto __pyx_L11;
}
- /* "lxml/objectify.pyx":965
+ /* "lxml/objectify.pyx":966
* if before is None:
* before = ()
* elif after is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":966
+ /* "lxml/objectify.pyx":967
* before = ()
* elif after is None:
* after = () # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_empty_tuple);
__Pyx_DECREF_SET(__pyx_v_after, __pyx_empty_tuple);
- /* "lxml/objectify.pyx":965
+ /* "lxml/objectify.pyx":966
* if before is None:
* before = ()
* elif after is None: # <<<<<<<<<<<<<<
}
__pyx_L11:;
- /* "lxml/objectify.pyx":967
+ /* "lxml/objectify.pyx":968
* elif after is None:
* after = ()
* for i, (check, pytype) in enumerate(_TYPE_CHECKS): # <<<<<<<<<<<<<<
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 968, __pyx_L1_error)
#else
- __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 967, __pyx_L1_error)
+ __PYX_ERR(0, 968, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx_t_8);
#else
- __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
__Pyx_GOTREF(__pyx_t_7);
index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L14_unpacking_failed;
__Pyx_GOTREF(__pyx_t_8);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(0, 967, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(0, 968, __pyx_L1_error)
__pyx_t_10 = NULL;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L15_unpacking_done;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 967, __pyx_L1_error)
+ __PYX_ERR(0, 968, __pyx_L1_error)
__pyx_L15_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_check, __pyx_t_7);
__pyx_t_8 = 0;
__Pyx_INCREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3);
- __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":968
+ /* "lxml/objectify.pyx":969
* after = ()
* for i, (check, pytype) in enumerate(_TYPE_CHECKS):
* if last_pos == -1 and pytype.name in before: # <<<<<<<<<<<<<<
* last_pos = i
* if pytype.name in after:
*/
- __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_last_pos, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_last_pos, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 969, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 969, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L17_bool_binop_done;
}
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 969, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_v_before, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_v_before, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 969, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = (__pyx_t_2 != 0);
__pyx_t_1 = __pyx_t_11;
__pyx_L17_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":969
+ /* "lxml/objectify.pyx":970
* for i, (check, pytype) in enumerate(_TYPE_CHECKS):
* if last_pos == -1 and pytype.name in before:
* last_pos = i # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_i);
__Pyx_DECREF_SET(__pyx_v_last_pos, __pyx_v_i);
- /* "lxml/objectify.pyx":968
+ /* "lxml/objectify.pyx":969
* after = ()
* for i, (check, pytype) in enumerate(_TYPE_CHECKS):
* if last_pos == -1 and pytype.name in before: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":970
+ /* "lxml/objectify.pyx":971
* if last_pos == -1 and pytype.name in before:
* last_pos = i
* if pytype.name in after: # <<<<<<<<<<<<<<
* first_pos = i+1
* if last_pos == -1:
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 970, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 970, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_6, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 971, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = (__pyx_t_1 != 0);
if (__pyx_t_11) {
- /* "lxml/objectify.pyx":971
+ /* "lxml/objectify.pyx":972
* last_pos = i
* if pytype.name in after:
* first_pos = i+1 # <<<<<<<<<<<<<<
* if last_pos == -1:
* _TYPE_CHECKS.append(entry)
*/
- __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 971, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_first_pos, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":970
+ /* "lxml/objectify.pyx":971
* if last_pos == -1 and pytype.name in before:
* last_pos = i
* if pytype.name in after: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":967
+ /* "lxml/objectify.pyx":968
* elif after is None:
* after = ()
* for i, (check, pytype) in enumerate(_TYPE_CHECKS): # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":962
+ /* "lxml/objectify.pyx":963
* first_pos = 0
* last_pos = -1
* if before or after: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":972
+ /* "lxml/objectify.pyx":973
* if pytype.name in after:
* first_pos = i+1
* if last_pos == -1: # <<<<<<<<<<<<<<
* _TYPE_CHECKS.append(entry)
* elif first_pos > last_pos:
*/
- __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_last_pos, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 972, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_last_pos, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 972, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 973, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_11) {
- /* "lxml/objectify.pyx":973
+ /* "lxml/objectify.pyx":974
* first_pos = i+1
* if last_pos == -1:
* _TYPE_CHECKS.append(entry) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 973, __pyx_L1_error)
+ __PYX_ERR(0, 974, __pyx_L1_error)
}
- __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_v_entry); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 973, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_v_entry); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 974, __pyx_L1_error)
- /* "lxml/objectify.pyx":972
+ /* "lxml/objectify.pyx":973
* if pytype.name in after:
* first_pos = i+1
* if last_pos == -1: # <<<<<<<<<<<<<<
goto __pyx_L20;
}
- /* "lxml/objectify.pyx":974
+ /* "lxml/objectify.pyx":975
* if last_pos == -1:
* _TYPE_CHECKS.append(entry)
* elif first_pos > last_pos: # <<<<<<<<<<<<<<
* raise ValueError, u"inconsistent before/after dependencies"
* else:
*/
- __pyx_t_3 = PyObject_RichCompare(__pyx_v_first_pos, __pyx_v_last_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
+ __pyx_t_3 = PyObject_RichCompare(__pyx_v_first_pos, __pyx_v_last_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(__pyx_t_11)) {
- /* "lxml/objectify.pyx":975
+ /* "lxml/objectify.pyx":976
* _TYPE_CHECKS.append(entry)
* elif first_pos > last_pos:
* raise ValueError, u"inconsistent before/after dependencies" # <<<<<<<<<<<<<<
* _TYPE_CHECKS.insert(last_pos, entry)
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_inconsistent_before_after_depend, 0, 0);
- __PYX_ERR(0, 975, __pyx_L1_error)
+ __PYX_ERR(0, 976, __pyx_L1_error)
- /* "lxml/objectify.pyx":974
+ /* "lxml/objectify.pyx":975
* if last_pos == -1:
* _TYPE_CHECKS.append(entry)
* elif first_pos > last_pos: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":977
+ /* "lxml/objectify.pyx":978
* raise ValueError, u"inconsistent before/after dependencies"
* else:
* _TYPE_CHECKS.insert(last_pos, entry) # <<<<<<<<<<<<<<
/*else*/ {
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
- __PYX_ERR(0, 977, __pyx_L1_error)
+ __PYX_ERR(0, 978, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L1_error)
- __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_4, __pyx_v_entry); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 977, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 978, __pyx_L1_error)
+ __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_4, __pyx_v_entry); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 978, __pyx_L1_error)
}
__pyx_L20:;
- /* "lxml/objectify.pyx":954
+ /* "lxml/objectify.pyx":955
* if self.name == TREE_PYTYPE_NAME:
* raise ValueError, u"Cannot register tree type"
* if self.type_check is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":979
+ /* "lxml/objectify.pyx":980
* _TYPE_CHECKS.insert(last_pos, entry)
*
* _PYTYPE_DICT[self.name] = self # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 979, __pyx_L1_error)
+ __PYX_ERR(0, 980, __pyx_L1_error)
}
- if (unlikely(PyDict_SetItem(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(0, 979, __pyx_L1_error)
+ if (unlikely(PyDict_SetItem(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
- /* "lxml/objectify.pyx":980
+ /* "lxml/objectify.pyx":981
*
* _PYTYPE_DICT[self.name] = self
* for xs_type in self._schema_types: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_schema_types == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 980, __pyx_L1_error)
+ __PYX_ERR(0, 981, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_self->_schema_types; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 981, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 981, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_XDECREF_SET(__pyx_v_xs_type, __pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":981
+ /* "lxml/objectify.pyx":982
* _PYTYPE_DICT[self.name] = self
* for xs_type in self._schema_types:
* _SCHEMA_TYPE_DICT[xs_type] = self # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 981, __pyx_L1_error)
+ __PYX_ERR(0, 982, __pyx_L1_error)
}
- if (unlikely(PyDict_SetItem(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_xs_type, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(0, 981, __pyx_L1_error)
+ if (unlikely(PyDict_SetItem(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_xs_type, ((PyObject *)__pyx_v_self)) < 0)) __PYX_ERR(0, 982, __pyx_L1_error)
- /* "lxml/objectify.pyx":980
+ /* "lxml/objectify.pyx":981
*
* _PYTYPE_DICT[self.name] = self
* for xs_type in self._schema_types: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":942
+ /* "lxml/objectify.pyx":943
* return "PyType(%s, %s)" % (self.name, self._type.__name__)
*
* def register(self, before=None, after=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":983
+/* "lxml/objectify.pyx":984
* _SCHEMA_TYPE_DICT[xs_type] = self
*
* def unregister(self): # <<<<<<<<<<<<<<
int __pyx_t_13;
__Pyx_RefNannySetupContext("unregister", 0);
- /* "lxml/objectify.pyx":985
+ /* "lxml/objectify.pyx":986
* def unregister(self):
* u"unregister(self)"
* if _PYTYPE_DICT.get(self.name) is self: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 985, __pyx_L1_error)
+ __PYX_ERR(0, 986, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 985, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = (__pyx_t_1 == ((PyObject *)__pyx_v_self));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":986
+ /* "lxml/objectify.pyx":987
* u"unregister(self)"
* if _PYTYPE_DICT.get(self.name) is self:
* del _PYTYPE_DICT[self.name] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 986, __pyx_L1_error)
+ __PYX_ERR(0, 987, __pyx_L1_error)
}
- if (unlikely(PyDict_DelItem(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name) < 0)) __PYX_ERR(0, 986, __pyx_L1_error)
+ if (unlikely(PyDict_DelItem(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_self->name) < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
- /* "lxml/objectify.pyx":985
+ /* "lxml/objectify.pyx":986
* def unregister(self):
* u"unregister(self)"
* if _PYTYPE_DICT.get(self.name) is self: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":987
+ /* "lxml/objectify.pyx":988
* if _PYTYPE_DICT.get(self.name) is self:
* del _PYTYPE_DICT[self.name]
* for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()): # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
- __PYX_ERR(0, 987, __pyx_L1_error)
+ __PYX_ERR(0, 988, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_4 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
for (;;) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
#else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 987, __pyx_L1_error)
+ __PYX_ERR(0, 988, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
#else
- __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 988, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
__Pyx_GOTREF(__pyx_t_6);
index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
__pyx_t_9 = NULL;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L7_unpacking_done;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 987, __pyx_L1_error)
+ __PYX_ERR(0, 988, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_xs_type, __pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":988
+ /* "lxml/objectify.pyx":989
* del _PYTYPE_DICT[self.name]
* for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):
* if pytype is self: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":989
+ /* "lxml/objectify.pyx":990
* for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):
* if pytype is self:
* del _SCHEMA_TYPE_DICT[xs_type] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 989, __pyx_L1_error)
+ __PYX_ERR(0, 990, __pyx_L1_error)
}
- if (unlikely(PyDict_DelItem(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_xs_type) < 0)) __PYX_ERR(0, 989, __pyx_L1_error)
+ if (unlikely(PyDict_DelItem(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_xs_type) < 0)) __PYX_ERR(0, 990, __pyx_L1_error)
- /* "lxml/objectify.pyx":988
+ /* "lxml/objectify.pyx":989
* del _PYTYPE_DICT[self.name]
* for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):
* if pytype is self: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":987
+ /* "lxml/objectify.pyx":988
* if _PYTYPE_DICT.get(self.name) is self:
* del _PYTYPE_DICT[self.name]
* for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":990
+ /* "lxml/objectify.pyx":991
* if pytype is self:
* del _SCHEMA_TYPE_DICT[xs_type]
* if self.type_check is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":991
+ /* "lxml/objectify.pyx":992
* del _SCHEMA_TYPE_DICT[xs_type]
* if self.type_check is None:
* return # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":990
+ /* "lxml/objectify.pyx":991
* if pytype is self:
* del _SCHEMA_TYPE_DICT[xs_type]
* if self.type_check is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":992
+ /* "lxml/objectify.pyx":993
* if self.type_check is None:
* return
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_12);
/*try:*/ {
- /* "lxml/objectify.pyx":993
+ /* "lxml/objectify.pyx":994
* return
* try:
* _TYPE_CHECKS.remove( (self.type_check, self) ) # <<<<<<<<<<<<<<
* except ValueError:
* pass
*/
- __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 993, __pyx_L10_error)
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_self->type_check);
__Pyx_GIVEREF(__pyx_v_self->type_check);
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__Pyx_GIVEREF(((PyObject *)__pyx_v_self));
PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
- __pyx_t_4 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 993, __pyx_L10_error)
+ __pyx_t_4 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 994, __pyx_L10_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":992
+ /* "lxml/objectify.pyx":993
* if self.type_check is None:
* return
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- /* "lxml/objectify.pyx":994
+ /* "lxml/objectify.pyx":995
* try:
* _TYPE_CHECKS.remove( (self.type_check, self) )
* except ValueError: # <<<<<<<<<<<<<<
goto __pyx_L12_except_error;
__pyx_L12_except_error:;
- /* "lxml/objectify.pyx":992
+ /* "lxml/objectify.pyx":993
* if self.type_check is None:
* return
* try: # <<<<<<<<<<<<<<
__pyx_L15_try_end:;
}
- /* "lxml/objectify.pyx":983
+ /* "lxml/objectify.pyx":984
* _SCHEMA_TYPE_DICT[xs_type] = self
*
* def unregister(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1002
+/* "lxml/objectify.pyx":1003
* Note that this must be set before registering the type!
* """
* def __get__(self): # <<<<<<<<<<<<<<
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__get__", 0);
- /* "lxml/objectify.pyx":1003
+ /* "lxml/objectify.pyx":1004
* """
* def __get__(self):
* return self._schema_types # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_self->_schema_types;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1002
+ /* "lxml/objectify.pyx":1003
* Note that this must be set before registering the type!
* """
* def __get__(self): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1004
+/* "lxml/objectify.pyx":1005
* def __get__(self):
* return self._schema_types
* def __set__(self, types): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("__set__", 0);
- /* "lxml/objectify.pyx":1005
+ /* "lxml/objectify.pyx":1006
* return self._schema_types
* def __set__(self, types):
* self._schema_types = list(map(unicode, types)) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1005, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(((PyObject *)(&PyUnicode_Type)));
__Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type)));
__Pyx_INCREF(__pyx_v_types);
__Pyx_GIVEREF(__pyx_v_types);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_types);
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1005, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_map, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1005, __pyx_L1_error)
+ __pyx_t_1 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1006, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_v_self->_schema_types = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1004
+ /* "lxml/objectify.pyx":1005
* def __get__(self):
* return self._schema_types
* def __set__(self, types): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":915
+/* "lxml/objectify.pyx":916
* matching type will be used.
* """
* cdef readonly object name # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":916
+/* "lxml/objectify.pyx":917
* """
* cdef readonly object name
* cdef readonly object type_check # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":917
+/* "lxml/objectify.pyx":918
* cdef readonly object name
* cdef readonly object type_check
* cdef readonly object stringify # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1012
+/* "lxml/objectify.pyx":1013
* cdef list _TYPE_CHECKS = []
*
* def __lower_bool(b): # <<<<<<<<<<<<<<
int __pyx_t_2;
__Pyx_RefNannySetupContext("__lower_bool", 0);
- /* "lxml/objectify.pyx":1013
+ /* "lxml/objectify.pyx":1014
*
* def __lower_bool(b):
* return u"true" if b else u"false" # <<<<<<<<<<<<<<
* cdef _pytypename(obj):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_b); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1013, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_b); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1014, __pyx_L1_error)
if (__pyx_t_2) {
__Pyx_INCREF(__pyx_n_u_true);
__pyx_t_1 = __pyx_n_u_true;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1012
+ /* "lxml/objectify.pyx":1013
* cdef list _TYPE_CHECKS = []
*
* def __lower_bool(b): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1015
+/* "lxml/objectify.pyx":1016
* return u"true" if b else u"false"
*
* cdef _pytypename(obj): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("_pytypename", 0);
- /* "lxml/objectify.pyx":1016
+ /* "lxml/objectify.pyx":1017
*
* cdef _pytypename(obj):
* return u"str" if python._isString(obj) else _typename(obj) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_u_str);
__pyx_t_1 = __pyx_n_u_str;
} else {
- __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(__pyx_v_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1016, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(__pyx_v_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1015
+ /* "lxml/objectify.pyx":1016
* return u"true" if b else u"false"
*
* cdef _pytypename(obj): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1018
+/* "lxml/objectify.pyx":1019
* return u"str" if python._isString(obj) else _typename(obj)
*
* def pytypename(obj): # <<<<<<<<<<<<<<
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("pytypename", 0);
- /* "lxml/objectify.pyx":1023
+ /* "lxml/objectify.pyx":1024
* Find the name of the corresponding PyType for a Python object.
* """
* return _pytypename(obj) # <<<<<<<<<<<<<<
* cdef _registerPyTypes():
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1018
+ /* "lxml/objectify.pyx":1019
* return u"str" if python._isString(obj) else _typename(obj)
*
* def pytypename(obj): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1025
+/* "lxml/objectify.pyx":1026
* return _pytypename(obj)
*
* cdef _registerPyTypes(): # <<<<<<<<<<<<<<
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("_registerPyTypes", 0);
- /* "lxml/objectify.pyx":1026
+ /* "lxml/objectify.pyx":1027
*
* cdef _registerPyTypes():
* pytype = PyType(u'int', int, IntElement) # <<<<<<<<<<<<<<
* pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort",
* u"unsignedByte", u"nonPositiveInteger",
*/
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1027, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_n_u_int);
__Pyx_GIVEREF(__pyx_n_u_int);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1027, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1027
+ /* "lxml/objectify.pyx":1028
* cdef _registerPyTypes():
* pytype = PyType(u'int', int, IntElement)
* pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort", # <<<<<<<<<<<<<<
* u"unsignedByte", u"nonPositiveInteger",
* u"negativeInteger", u"long", u"nonNegativeInteger",
*/
- if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__5) < 0) __PYX_ERR(0, 1027, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__5) < 0) __PYX_ERR(0, 1028, __pyx_L1_error)
- /* "lxml/objectify.pyx":1031
+ /* "lxml/objectify.pyx":1032
* u"negativeInteger", u"long", u"nonNegativeInteger",
* u"unsignedLong", u"unsignedInt", u"positiveInteger",)
* pytype.register() # <<<<<<<<<<<<<<
*
* # 'long' type just for backwards compatibility
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1032, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1032, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1034
+ /* "lxml/objectify.pyx":1035
*
* # 'long' type just for backwards compatibility
* pytype = PyType(u'long', None, IntElement) # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_n_u_long);
__Pyx_GIVEREF(__pyx_n_u_long);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_IntElement));
- __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1035
+ /* "lxml/objectify.pyx":1036
* # 'long' type just for backwards compatibility
* pytype = PyType(u'long', None, IntElement)
* pytype.register() # <<<<<<<<<<<<<<
*
* pytype = PyType(u'float', float, FloatElement, repr)
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1037
+ /* "lxml/objectify.pyx":1038
* pytype.register()
*
* pytype = PyType(u'float', float, FloatElement, repr) # <<<<<<<<<<<<<<
* pytype.xmlSchemaTypes = (u"double", u"float")
* pytype.register()
*/
- __pyx_t_1 = __Pyx_GetBuiltinName(__pyx_n_s_repr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_GetBuiltinName(__pyx_n_s_repr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1037, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_n_u_float);
__Pyx_GIVEREF(__pyx_n_u_float);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1038
+ /* "lxml/objectify.pyx":1039
*
* pytype = PyType(u'float', float, FloatElement, repr)
* pytype.xmlSchemaTypes = (u"double", u"float") # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__6) < 0) __PYX_ERR(0, 1038, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__6) < 0) __PYX_ERR(0, 1039, __pyx_L1_error)
- /* "lxml/objectify.pyx":1039
+ /* "lxml/objectify.pyx":1040
* pytype = PyType(u'float', float, FloatElement, repr)
* pytype.xmlSchemaTypes = (u"double", u"float")
* pytype.register() # <<<<<<<<<<<<<<
*
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1039, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1040, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1039, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1040, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1041
+ /* "lxml/objectify.pyx":1042
* pytype.register()
*
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool) # <<<<<<<<<<<<<<
* pytype.xmlSchemaTypes = (u"boolean",)
* pytype.register()
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_checkBool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1041, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_checkBool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_lower_bool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1041, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_lower_bool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_n_u_bool);
__Pyx_GIVEREF(__pyx_n_u_bool);
PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1041, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1042, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1042
+ /* "lxml/objectify.pyx":1043
*
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
* pytype.xmlSchemaTypes = (u"boolean",) # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__7) < 0) __PYX_ERR(0, 1042, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__7) < 0) __PYX_ERR(0, 1043, __pyx_L1_error)
- /* "lxml/objectify.pyx":1043
+ /* "lxml/objectify.pyx":1044
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
* pytype.xmlSchemaTypes = (u"boolean",)
* pytype.register() # <<<<<<<<<<<<<<
*
* pytype = PyType(u'str', None, StringElement)
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1043, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1044, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1045
+ /* "lxml/objectify.pyx":1046
* pytype.register()
*
* pytype = PyType(u'str', None, StringElement) # <<<<<<<<<<<<<<
* pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language",
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
*/
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_n_u_str);
__Pyx_GIVEREF(__pyx_n_u_str);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement));
PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement));
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1045, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_3));
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1046
+ /* "lxml/objectify.pyx":1047
*
* pytype = PyType(u'str', None, StringElement)
* pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language", # <<<<<<<<<<<<<<
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
* u"NMTOKEN", )
*/
- if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__8) < 0) __PYX_ERR(0, 1046, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_xmlSchemaTypes, __pyx_tuple__8) < 0) __PYX_ERR(0, 1047, __pyx_L1_error)
- /* "lxml/objectify.pyx":1049
+ /* "lxml/objectify.pyx":1050
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
* u"NMTOKEN", )
* pytype.register() # <<<<<<<<<<<<<<
*
* # since lxml 2.0
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1049, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1052
+ /* "lxml/objectify.pyx":1053
*
* # since lxml 2.0
* pytype = PyType(u'NoneType', None, NoneElement) # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1052, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_n_u_NoneType);
__Pyx_GIVEREF(__pyx_n_u_NoneType);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1052, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1053, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1053
+ /* "lxml/objectify.pyx":1054
* # since lxml 2.0
* pytype = PyType(u'NoneType', None, NoneElement)
* pytype.register() # <<<<<<<<<<<<<<
*
* # backwards compatibility
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1053, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1053, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1054, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1056
+ /* "lxml/objectify.pyx":1057
*
* # backwards compatibility
* pytype = PyType(u'none', None, NoneElement) # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1056, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_n_u_none);
__Pyx_GIVEREF(__pyx_n_u_none);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement));
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1056, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_3));
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1057
+ /* "lxml/objectify.pyx":1058
* # backwards compatibility
* pytype = PyType(u'none', None, NoneElement)
* pytype.register() # <<<<<<<<<<<<<<
*
* # non-registered PyType for inner tree elements
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1057, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s_register); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
}
__pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1057, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1058, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1025
+ /* "lxml/objectify.pyx":1026
* return _pytypename(obj)
*
* cdef _registerPyTypes(): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1064
+/* "lxml/objectify.pyx":1065
* _registerPyTypes()
*
* def getRegisteredTypes(): # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_11)(PyObject *);
__Pyx_RefNannySetupContext("getRegisteredTypes", 0);
- /* "lxml/objectify.pyx":1079
+ /* "lxml/objectify.pyx":1080
* end of the type list.
* """
* cdef list types = [] # <<<<<<<<<<<<<<
* cdef set known = set()
* for check, pytype in _TYPE_CHECKS:
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1079, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1080, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_types = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1080
+ /* "lxml/objectify.pyx":1081
* """
* cdef list types = []
* cdef set known = set() # <<<<<<<<<<<<<<
* for check, pytype in _TYPE_CHECKS:
* name = pytype.name
*/
- __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1080, __pyx_L1_error)
+ __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1081, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_known = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1081
+ /* "lxml/objectify.pyx":1082
* cdef list types = []
* cdef set known = set()
* for check, pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 1081, __pyx_L1_error)
+ __PYX_ERR(0, 1082, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_4lxml_9objectify__TYPE_CHECKS; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1081, __pyx_L1_error)
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1082, __pyx_L1_error)
#else
- __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1081, __pyx_L1_error)
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1081, __pyx_L1_error)
+ __PYX_ERR(0, 1082, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1081, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1081, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1081, __pyx_L1_error)
+ __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1082, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
__Pyx_GOTREF(__pyx_t_5);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1081, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 1082, __pyx_L1_error)
__pyx_t_7 = NULL;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L6_unpacking_done;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1081, __pyx_L1_error)
+ __PYX_ERR(0, 1082, __pyx_L1_error)
__pyx_L6_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_check, __pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1082
+ /* "lxml/objectify.pyx":1083
* cdef set known = set()
* for check, pytype in _TYPE_CHECKS:
* name = pytype.name # <<<<<<<<<<<<<<
* if name not in known:
* known.add(name)
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1083, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1083
+ /* "lxml/objectify.pyx":1084
* for check, pytype in _TYPE_CHECKS:
* name = pytype.name
* if name not in known: # <<<<<<<<<<<<<<
* known.add(name)
* types.append(pytype)
*/
- __pyx_t_8 = (__Pyx_PySet_ContainsTF(__pyx_v_name, __pyx_v_known, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1083, __pyx_L1_error)
+ __pyx_t_8 = (__Pyx_PySet_ContainsTF(__pyx_v_name, __pyx_v_known, Py_NE)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1084, __pyx_L1_error)
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
- /* "lxml/objectify.pyx":1084
+ /* "lxml/objectify.pyx":1085
* name = pytype.name
* if name not in known:
* known.add(name) # <<<<<<<<<<<<<<
* types.append(pytype)
* for pytype in _PYTYPE_DICT.values():
*/
- __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1084, __pyx_L1_error)
+ __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1085, __pyx_L1_error)
- /* "lxml/objectify.pyx":1085
+ /* "lxml/objectify.pyx":1086
* if name not in known:
* known.add(name)
* types.append(pytype) # <<<<<<<<<<<<<<
* for pytype in _PYTYPE_DICT.values():
* name = pytype.name
*/
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1085, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1086, __pyx_L1_error)
- /* "lxml/objectify.pyx":1083
+ /* "lxml/objectify.pyx":1084
* for check, pytype in _TYPE_CHECKS:
* name = pytype.name
* if name not in known: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1081
+ /* "lxml/objectify.pyx":1082
* cdef list types = []
* cdef set known = set()
* for check, pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1086
+ /* "lxml/objectify.pyx":1087
* known.add(name)
* types.append(pytype)
* for pytype in _PYTYPE_DICT.values(): # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
- __PYX_ERR(0, 1086, __pyx_L1_error)
+ __PYX_ERR(0, 1087, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;
__pyx_t_11 = NULL;
} else {
- __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1087, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1087, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1087, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1086, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1086, __pyx_L1_error)
+ else __PYX_ERR(0, 1087, __pyx_L1_error)
}
break;
}
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1087
+ /* "lxml/objectify.pyx":1088
* types.append(pytype)
* for pytype in _PYTYPE_DICT.values():
* name = pytype.name # <<<<<<<<<<<<<<
* if name not in known:
* known.add(name)
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1088
+ /* "lxml/objectify.pyx":1089
* for pytype in _PYTYPE_DICT.values():
* name = pytype.name
* if name not in known: # <<<<<<<<<<<<<<
* known.add(name)
* types.append(pytype)
*/
- __pyx_t_9 = (__Pyx_PySet_ContainsTF(__pyx_v_name, __pyx_v_known, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1088, __pyx_L1_error)
+ __pyx_t_9 = (__Pyx_PySet_ContainsTF(__pyx_v_name, __pyx_v_known, Py_NE)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1089, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_9 != 0);
if (__pyx_t_8) {
- /* "lxml/objectify.pyx":1089
+ /* "lxml/objectify.pyx":1090
* name = pytype.name
* if name not in known:
* known.add(name) # <<<<<<<<<<<<<<
* types.append(pytype)
* return types
*/
- __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1089, __pyx_L1_error)
+ __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1090, __pyx_L1_error)
- /* "lxml/objectify.pyx":1090
+ /* "lxml/objectify.pyx":1091
* if name not in known:
* known.add(name)
* types.append(pytype) # <<<<<<<<<<<<<<
* return types
*
*/
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1090, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1091, __pyx_L1_error)
- /* "lxml/objectify.pyx":1088
+ /* "lxml/objectify.pyx":1089
* for pytype in _PYTYPE_DICT.values():
* name = pytype.name
* if name not in known: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1086
+ /* "lxml/objectify.pyx":1087
* known.add(name)
* types.append(pytype)
* for pytype in _PYTYPE_DICT.values(): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1091
+ /* "lxml/objectify.pyx":1092
* known.add(name)
* types.append(pytype)
* return types # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_types;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1064
+ /* "lxml/objectify.pyx":1065
* _registerPyTypes()
*
* def getRegisteredTypes(): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1093
+/* "lxml/objectify.pyx":1094
* return types
*
* cdef PyType _guessPyType(value, PyType defaulttype): # <<<<<<<<<<<<<<
int __pyx_t_13;
__Pyx_RefNannySetupContext("_guessPyType", 0);
- /* "lxml/objectify.pyx":1094
+ /* "lxml/objectify.pyx":1095
*
* cdef PyType _guessPyType(value, PyType defaulttype):
* if value is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1095
+ /* "lxml/objectify.pyx":1096
* cdef PyType _guessPyType(value, PyType defaulttype):
* if value is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1094
+ /* "lxml/objectify.pyx":1095
*
* cdef PyType _guessPyType(value, PyType defaulttype):
* if value is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1096
+ /* "lxml/objectify.pyx":1097
* if value is None:
* return None
* for type_check, tested_pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 1096, __pyx_L1_error)
+ __PYX_ERR(0, 1097, __pyx_L1_error)
}
__pyx_t_3 = __pyx_v_4lxml_9objectify__TYPE_CHECKS; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1096, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1097, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1096, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1096, __pyx_L1_error)
+ __PYX_ERR(0, 1097, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
#else
- __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1096, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1096, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1096, __pyx_L1_error)
+ __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
__Pyx_GOTREF(__pyx_t_6);
index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1096, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1097, __pyx_L1_error)
__pyx_t_9 = NULL;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L7_unpacking_done;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1096, __pyx_L1_error)
+ __PYX_ERR(0, 1097, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_type_check, __pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_tested_pytype, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1097
+ /* "lxml/objectify.pyx":1098
* return None
* for type_check, tested_pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_12);
/*try:*/ {
- /* "lxml/objectify.pyx":1098
+ /* "lxml/objectify.pyx":1099
* for type_check, tested_pytype in _TYPE_CHECKS:
* try:
* type_check(value) # <<<<<<<<<<<<<<
}
__pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1098, __pyx_L8_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1099, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1099
+ /* "lxml/objectify.pyx":1100
* try:
* type_check(value)
* return <PyType>tested_pytype # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L12_try_return;
- /* "lxml/objectify.pyx":1097
+ /* "lxml/objectify.pyx":1098
* return None
* for type_check, tested_pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- /* "lxml/objectify.pyx":1100
+ /* "lxml/objectify.pyx":1101
* type_check(value)
* return <PyType>tested_pytype
* except IGNORABLE_ERRORS: # <<<<<<<<<<<<<<
goto __pyx_L10_except_error;
__pyx_L10_except_error:;
- /* "lxml/objectify.pyx":1097
+ /* "lxml/objectify.pyx":1098
* return None
* for type_check, tested_pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
}
- /* "lxml/objectify.pyx":1096
+ /* "lxml/objectify.pyx":1097
* if value is None:
* return None
* for type_check, tested_pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1103
+ /* "lxml/objectify.pyx":1104
* # could not be parsed as the specified type => ignore
* pass
* return defaulttype # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_defaulttype;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1093
+ /* "lxml/objectify.pyx":1094
* return types
*
* cdef PyType _guessPyType(value, PyType defaulttype): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1105
+/* "lxml/objectify.pyx":1106
* return defaulttype
*
* cdef object _guessElementClass(tree.xmlNode* c_node): # <<<<<<<<<<<<<<
int __pyx_t_13;
__Pyx_RefNannySetupContext("_guessElementClass", 0);
- /* "lxml/objectify.pyx":1106
+ /* "lxml/objectify.pyx":1107
*
* cdef object _guessElementClass(tree.xmlNode* c_node):
* value = textOf(c_node) # <<<<<<<<<<<<<<
* if value is None:
* return None
*/
- __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1106, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1107, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_value = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1107
+ /* "lxml/objectify.pyx":1108
* cdef object _guessElementClass(tree.xmlNode* c_node):
* value = textOf(c_node)
* if value is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1108
+ /* "lxml/objectify.pyx":1109
* value = textOf(c_node)
* if value is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1107
+ /* "lxml/objectify.pyx":1108
* cdef object _guessElementClass(tree.xmlNode* c_node):
* value = textOf(c_node)
* if value is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1109
+ /* "lxml/objectify.pyx":1110
* if value is None:
* return None
* if value == '': # <<<<<<<<<<<<<<
* return StringElement
*
*/
- __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_value, __pyx_kp_s_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1109, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_value, __pyx_kp_s_, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1110, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1110
+ /* "lxml/objectify.pyx":1111
* return None
* if value == '':
* return StringElement # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1109
+ /* "lxml/objectify.pyx":1110
* if value is None:
* return None
* if value == '': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1112
+ /* "lxml/objectify.pyx":1113
* return StringElement
*
* for type_check, pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__TYPE_CHECKS == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 1112, __pyx_L1_error)
+ __PYX_ERR(0, 1113, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_4lxml_9objectify__TYPE_CHECKS; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
for (;;) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1112, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1113, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1112, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1112, __pyx_L1_error)
+ __PYX_ERR(0, 1113, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
#else
- __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1112, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1112, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1112, __pyx_L1_error)
+ __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
__Pyx_GOTREF(__pyx_t_6);
index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1112, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1113, __pyx_L1_error)
__pyx_t_9 = NULL;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L8_unpacking_done;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1112, __pyx_L1_error)
+ __PYX_ERR(0, 1113, __pyx_L1_error)
__pyx_L8_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_type_check, __pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1113
+ /* "lxml/objectify.pyx":1114
*
* for type_check, pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_12);
/*try:*/ {
- /* "lxml/objectify.pyx":1114
+ /* "lxml/objectify.pyx":1115
* for type_check, pytype in _TYPE_CHECKS:
* try:
* type_check(value) # <<<<<<<<<<<<<<
}
__pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1114, __pyx_L9_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1115, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1115
+ /* "lxml/objectify.pyx":1116
* try:
* type_check(value)
* return (<PyType>pytype)._type # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L13_try_return;
- /* "lxml/objectify.pyx":1113
+ /* "lxml/objectify.pyx":1114
*
* for type_check, pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- /* "lxml/objectify.pyx":1116
+ /* "lxml/objectify.pyx":1117
* type_check(value)
* return (<PyType>pytype)._type
* except IGNORABLE_ERRORS: # <<<<<<<<<<<<<<
goto __pyx_L11_except_error;
__pyx_L11_except_error:;
- /* "lxml/objectify.pyx":1113
+ /* "lxml/objectify.pyx":1114
*
* for type_check, pytype in _TYPE_CHECKS:
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
}
- /* "lxml/objectify.pyx":1112
+ /* "lxml/objectify.pyx":1113
* return StringElement
*
* for type_check, pytype in _TYPE_CHECKS: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1118
+ /* "lxml/objectify.pyx":1119
* except IGNORABLE_ERRORS:
* pass
* return None # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1105
+ /* "lxml/objectify.pyx":1106
* return defaulttype
*
* cdef object _guessElementClass(tree.xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1131
+/* "lxml/objectify.pyx":1132
* cdef bint _annotate
*
* def __call__(self, *children, **attrib): # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_13)(PyObject *);
__Pyx_RefNannySetupContext("__call__", 0);
- /* "lxml/objectify.pyx":1138
+ /* "lxml/objectify.pyx":1139
* cdef bint has_children
* cdef bint has_string_value
* if self._element_factory is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1139
+ /* "lxml/objectify.pyx":1140
* cdef bint has_string_value
* if self._element_factory is None:
* element = _makeElement(self._tag, None, attrib, self._nsmap) # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_3);
__pyx_t_4 = __pyx_v_self->_nsmap;
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_3, Py_None, __pyx_v_attrib, __pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1139, __pyx_L1_error)
+ __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_3, Py_None, __pyx_v_attrib, __pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1138
+ /* "lxml/objectify.pyx":1139
* cdef bint has_children
* cdef bint has_string_value
* if self._element_factory is None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1141
+ /* "lxml/objectify.pyx":1142
* element = _makeElement(self._tag, None, attrib, self._nsmap)
* else:
* element = self._element_factory(self._tag, attrib, self._nsmap) # <<<<<<<<<<<<<<
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_self->_tag, __pyx_v_attrib, __pyx_v_self->_nsmap};
- __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1141, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_5);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_self->_tag, __pyx_v_attrib, __pyx_v_self->_nsmap};
- __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1141, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_GOTREF(__pyx_t_5);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1141, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_3) {
__Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_self->_nsmap);
__Pyx_GIVEREF(__pyx_v_self->_nsmap);
PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_self->_nsmap);
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1141, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1141, __pyx_L1_error)
+ if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1142, __pyx_L1_error)
__pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
__pyx_t_5 = 0;
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1143
+ /* "lxml/objectify.pyx":1144
* element = self._element_factory(self._tag, attrib, self._nsmap)
*
* pytype_name = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_pytype_name = Py_None;
- /* "lxml/objectify.pyx":1144
+ /* "lxml/objectify.pyx":1145
*
* pytype_name = None
* has_children = False # <<<<<<<<<<<<<<
*/
__pyx_v_has_children = 0;
- /* "lxml/objectify.pyx":1145
+ /* "lxml/objectify.pyx":1146
* pytype_name = None
* has_children = False
* has_string_value = False # <<<<<<<<<<<<<<
*/
__pyx_v_has_string_value = 0;
- /* "lxml/objectify.pyx":1146
+ /* "lxml/objectify.pyx":1147
* has_children = False
* has_string_value = False
* for child in children: # <<<<<<<<<<<<<<
for (;;) {
if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1146, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1147, __pyx_L1_error)
#else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1146, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1147, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
__Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1147
+ /* "lxml/objectify.pyx":1148
* has_string_value = False
* for child in children:
* if child is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1148
+ /* "lxml/objectify.pyx":1149
* for child in children:
* if child is None:
* if len(children) == 1: # <<<<<<<<<<<<<<
* cetree.setAttributeValue(
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
*/
- __pyx_t_9 = PyTuple_GET_SIZE(__pyx_v_children); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1148, __pyx_L1_error)
+ __pyx_t_9 = PyTuple_GET_SIZE(__pyx_v_children); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1149, __pyx_L1_error)
__pyx_t_1 = ((__pyx_t_9 == 1) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1150
+ /* "lxml/objectify.pyx":1151
* if len(children) == 1:
* cetree.setAttributeValue(
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true") # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
__Pyx_INCREF(__pyx_t_4);
- /* "lxml/objectify.pyx":1149
+ /* "lxml/objectify.pyx":1150
* if child is None:
* if len(children) == 1:
* cetree.setAttributeValue( # <<<<<<<<<<<<<<
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
* elif python._isString(child):
*/
- __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_4, __pyx_n_u_true); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1149, __pyx_L1_error)
+ __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_4, __pyx_n_u_true); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1150, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1148
+ /* "lxml/objectify.pyx":1149
* for child in children:
* if child is None:
* if len(children) == 1: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1147
+ /* "lxml/objectify.pyx":1148
* has_string_value = False
* for child in children:
* if child is None: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1151
+ /* "lxml/objectify.pyx":1152
* cetree.setAttributeValue(
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
* elif python._isString(child): # <<<<<<<<<<<<<<
__pyx_t_1 = (_isString(__pyx_v_child) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1152
+ /* "lxml/objectify.pyx":1153
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
* elif python._isString(child):
* _add_text(element, child) # <<<<<<<<<<<<<<
* has_string_value = True
* elif isinstance(child, _Element):
*/
- __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1152, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1153, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1153
+ /* "lxml/objectify.pyx":1154
* elif python._isString(child):
* _add_text(element, child)
* has_string_value = True # <<<<<<<<<<<<<<
*/
__pyx_v_has_string_value = 1;
- /* "lxml/objectify.pyx":1151
+ /* "lxml/objectify.pyx":1152
* cetree.setAttributeValue(
* element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
* elif python._isString(child): # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1154
+ /* "lxml/objectify.pyx":1155
* _add_text(element, child)
* has_string_value = True
* elif isinstance(child, _Element): # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1155
+ /* "lxml/objectify.pyx":1156
* has_string_value = True
* elif isinstance(child, _Element):
* cetree.appendChildToElement(element, <_Element>child) # <<<<<<<<<<<<<<
* has_children = True
* elif isinstance(child, _ObjectifyElementMakerCaller):
*/
- __pyx_t_6 = appendChildToElement(__pyx_v_element, ((struct LxmlElement *)__pyx_v_child)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1155, __pyx_L1_error)
+ __pyx_t_6 = appendChildToElement(__pyx_v_element, ((struct LxmlElement *)__pyx_v_child)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1156, __pyx_L1_error)
- /* "lxml/objectify.pyx":1156
+ /* "lxml/objectify.pyx":1157
* elif isinstance(child, _Element):
* cetree.appendChildToElement(element, <_Element>child)
* has_children = True # <<<<<<<<<<<<<<
*/
__pyx_v_has_children = 1;
- /* "lxml/objectify.pyx":1154
+ /* "lxml/objectify.pyx":1155
* _add_text(element, child)
* has_string_value = True
* elif isinstance(child, _Element): # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1157
+ /* "lxml/objectify.pyx":1158
* cetree.appendChildToElement(element, <_Element>child)
* has_children = True
* elif isinstance(child, _ObjectifyElementMakerCaller): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1158
+ /* "lxml/objectify.pyx":1159
* has_children = True
* elif isinstance(child, _ObjectifyElementMakerCaller):
* elementMaker = <_ObjectifyElementMakerCaller>child # <<<<<<<<<<<<<<
__Pyx_XDECREF_SET(__pyx_v_elementMaker, ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_t_4));
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1159
+ /* "lxml/objectify.pyx":1160
* elif isinstance(child, _ObjectifyElementMakerCaller):
* elementMaker = <_ObjectifyElementMakerCaller>child
* if elementMaker._element_factory is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1160
+ /* "lxml/objectify.pyx":1161
* elementMaker = <_ObjectifyElementMakerCaller>child
* if elementMaker._element_factory is None:
* cetree.makeSubElement(element, elementMaker._tag, # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_v_elementMaker->_tag;
__Pyx_INCREF(__pyx_t_4);
- /* "lxml/objectify.pyx":1161
+ /* "lxml/objectify.pyx":1162
* if elementMaker._element_factory is None:
* cetree.makeSubElement(element, elementMaker._tag,
* None, None, None, None) # <<<<<<<<<<<<<<
* else:
* childElement = elementMaker._element_factory(
*/
- __pyx_t_7 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_4, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1160, __pyx_L1_error)
+ __pyx_t_7 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_4, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1161, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1159
+ /* "lxml/objectify.pyx":1160
* elif isinstance(child, _ObjectifyElementMakerCaller):
* elementMaker = <_ObjectifyElementMakerCaller>child
* if elementMaker._element_factory is None: # <<<<<<<<<<<<<<
goto __pyx_L8;
}
- /* "lxml/objectify.pyx":1163
+ /* "lxml/objectify.pyx":1164
* None, None, None, None)
* else:
* childElement = elementMaker._element_factory( # <<<<<<<<<<<<<<
*/
/*else*/ {
- /* "lxml/objectify.pyx":1164
+ /* "lxml/objectify.pyx":1165
* else:
* childElement = elementMaker._element_factory(
* elementMaker._tag) # <<<<<<<<<<<<<<
}
__pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_elementMaker->_tag) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_elementMaker->_tag);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1163, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1164, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1163
+ /* "lxml/objectify.pyx":1164
* None, None, None, None)
* else:
* childElement = elementMaker._element_factory( # <<<<<<<<<<<<<<
* elementMaker._tag)
* cetree.appendChildToElement(element, childElement)
*/
- if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1163, __pyx_L1_error)
+ if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1164, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_childElement, ((struct LxmlElement *)__pyx_t_7));
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1165
+ /* "lxml/objectify.pyx":1166
* childElement = elementMaker._element_factory(
* elementMaker._tag)
* cetree.appendChildToElement(element, childElement) # <<<<<<<<<<<<<<
* has_children = True
* elif isinstance(child, dict):
*/
- __pyx_t_6 = appendChildToElement(__pyx_v_element, __pyx_v_childElement); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1165, __pyx_L1_error)
+ __pyx_t_6 = appendChildToElement(__pyx_v_element, __pyx_v_childElement); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1166, __pyx_L1_error)
}
__pyx_L8:;
- /* "lxml/objectify.pyx":1166
+ /* "lxml/objectify.pyx":1167
* elementMaker._tag)
* cetree.appendChildToElement(element, childElement)
* has_children = True # <<<<<<<<<<<<<<
*/
__pyx_v_has_children = 1;
- /* "lxml/objectify.pyx":1157
+ /* "lxml/objectify.pyx":1158
* cetree.appendChildToElement(element, <_Element>child)
* has_children = True
* elif isinstance(child, _ObjectifyElementMakerCaller): # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1167
+ /* "lxml/objectify.pyx":1168
* cetree.appendChildToElement(element, childElement)
* has_children = True
* elif isinstance(child, dict): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1168
+ /* "lxml/objectify.pyx":1169
* has_children = True
* elif isinstance(child, dict):
* for name, value in child.items(): # <<<<<<<<<<<<<<
* # keyword arguments in attrib take precedence
* if name in attrib:
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child, __pyx_n_s_items); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
}
__pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
__pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
- __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1169, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1169, __pyx_L1_error)
#else
- __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1169, __pyx_L1_error)
#else
- __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1168, __pyx_L1_error)
+ else __PYX_ERR(0, 1169, __pyx_L1_error)
}
break;
}
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1168, __pyx_L1_error)
+ __PYX_ERR(0, 1169, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_11);
#else
- __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
#endif
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_12 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1168, __pyx_L1_error)
+ __pyx_t_12 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1169, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
__Pyx_GOTREF(__pyx_t_3);
index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L11_unpacking_failed;
__Pyx_GOTREF(__pyx_t_11);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 1168, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) __PYX_ERR(0, 1169, __pyx_L1_error)
__pyx_t_13 = NULL;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L12_unpacking_done;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_13 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1168, __pyx_L1_error)
+ __PYX_ERR(0, 1169, __pyx_L1_error)
__pyx_L12_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_11);
__pyx_t_11 = 0;
- /* "lxml/objectify.pyx":1170
+ /* "lxml/objectify.pyx":1171
* for name, value in child.items():
* # keyword arguments in attrib take precedence
* if name in attrib: # <<<<<<<<<<<<<<
* continue
* pytype = _PYTYPE_DICT.get(_typename(value))
*/
- __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_attrib, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1170, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_name, __pyx_v_attrib, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1171, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1171
+ /* "lxml/objectify.pyx":1172
* # keyword arguments in attrib take precedence
* if name in attrib:
* continue # <<<<<<<<<<<<<<
*/
goto __pyx_L9_continue;
- /* "lxml/objectify.pyx":1170
+ /* "lxml/objectify.pyx":1171
* for name, value in child.items():
* # keyword arguments in attrib take precedence
* if name in attrib: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1172
+ /* "lxml/objectify.pyx":1173
* if name in attrib:
* continue
* pytype = _PYTYPE_DICT.get(_typename(value)) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1172, __pyx_L1_error)
+ __PYX_ERR(0, 1173, __pyx_L1_error)
}
- __pyx_t_7 = __pyx_f_4lxml_9objectify__typename(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1172, __pyx_L1_error)
+ __pyx_t_7 = __pyx_f_4lxml_9objectify__typename(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_t_7, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1172, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_t_7, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1173, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_11);
__pyx_t_11 = 0;
- /* "lxml/objectify.pyx":1173
+ /* "lxml/objectify.pyx":1174
* continue
* pytype = _PYTYPE_DICT.get(_typename(value))
* if pytype is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1174
+ /* "lxml/objectify.pyx":1175
* pytype = _PYTYPE_DICT.get(_typename(value))
* if pytype is not None:
* value = (<PyType>pytype).stringify(value) # <<<<<<<<<<<<<<
}
__pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1174, __pyx_L1_error)
+ if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_11);
__pyx_t_11 = 0;
- /* "lxml/objectify.pyx":1173
+ /* "lxml/objectify.pyx":1174
* continue
* pytype = _PYTYPE_DICT.get(_typename(value))
* if pytype is not None: # <<<<<<<<<<<<<<
goto __pyx_L14;
}
- /* "lxml/objectify.pyx":1175
+ /* "lxml/objectify.pyx":1176
* if pytype is not None:
* value = (<PyType>pytype).stringify(value)
* elif not python._isString(value): # <<<<<<<<<<<<<<
__pyx_t_1 = ((!(_isString(__pyx_v_value) != 0)) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1176
+ /* "lxml/objectify.pyx":1177
* value = (<PyType>pytype).stringify(value)
* elif not python._isString(value):
* value = unicode(value) # <<<<<<<<<<<<<<
* cetree.setAttributeValue(element, name, value)
* else:
*/
- __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1176, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_11);
__pyx_t_11 = 0;
- /* "lxml/objectify.pyx":1175
+ /* "lxml/objectify.pyx":1176
* if pytype is not None:
* value = (<PyType>pytype).stringify(value)
* elif not python._isString(value): # <<<<<<<<<<<<<<
}
__pyx_L14:;
- /* "lxml/objectify.pyx":1177
+ /* "lxml/objectify.pyx":1178
* elif not python._isString(value):
* value = unicode(value)
* cetree.setAttributeValue(element, name, value) # <<<<<<<<<<<<<<
* else:
* if pytype_name is not None:
*/
- __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_v_name, __pyx_v_value); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1177, __pyx_L1_error)
+ __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_v_name, __pyx_v_value); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1178, __pyx_L1_error)
- /* "lxml/objectify.pyx":1168
+ /* "lxml/objectify.pyx":1169
* has_children = True
* elif isinstance(child, dict):
* for name, value in child.items(): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1167
+ /* "lxml/objectify.pyx":1168
* cetree.appendChildToElement(element, childElement)
* has_children = True
* elif isinstance(child, dict): # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1179
+ /* "lxml/objectify.pyx":1180
* cetree.setAttributeValue(element, name, value)
* else:
* if pytype_name is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1181
+ /* "lxml/objectify.pyx":1182
* if pytype_name is not None:
* # concatenation always makes the result a string
* has_string_value = True # <<<<<<<<<<<<<<
*/
__pyx_v_has_string_value = 1;
- /* "lxml/objectify.pyx":1179
+ /* "lxml/objectify.pyx":1180
* cetree.setAttributeValue(element, name, value)
* else:
* if pytype_name is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1182
+ /* "lxml/objectify.pyx":1183
* # concatenation always makes the result a string
* has_string_value = True
* pytype_name = _typename(child) # <<<<<<<<<<<<<<
* pytype = _PYTYPE_DICT.get(_typename(child))
* if pytype is not None:
*/
- __pyx_t_4 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1182, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1183, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_pytype_name, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1183
+ /* "lxml/objectify.pyx":1184
* has_string_value = True
* pytype_name = _typename(child)
* pytype = _PYTYPE_DICT.get(_typename(child)) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1183, __pyx_L1_error)
+ __PYX_ERR(0, 1184, __pyx_L1_error)
}
- __pyx_t_4 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1183, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1183, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1184, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_11);
__pyx_t_11 = 0;
- /* "lxml/objectify.pyx":1184
+ /* "lxml/objectify.pyx":1185
* pytype_name = _typename(child)
* pytype = _PYTYPE_DICT.get(_typename(child))
* if pytype is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1185
+ /* "lxml/objectify.pyx":1186
* pytype = _PYTYPE_DICT.get(_typename(child))
* if pytype is not None:
* _add_text(element, (<PyType>pytype).stringify(child)) # <<<<<<<<<<<<<<
}
__pyx_t_11 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_v_child) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_child);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1185, __pyx_L1_error)
+ if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1185, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1184
+ /* "lxml/objectify.pyx":1185
* pytype_name = _typename(child)
* pytype = _PYTYPE_DICT.get(_typename(child))
* if pytype is not None: # <<<<<<<<<<<<<<
goto __pyx_L16;
}
- /* "lxml/objectify.pyx":1187
+ /* "lxml/objectify.pyx":1188
* _add_text(element, (<PyType>pytype).stringify(child))
* else:
* has_string_value = True # <<<<<<<<<<<<<<
/*else*/ {
__pyx_v_has_string_value = 1;
- /* "lxml/objectify.pyx":1188
+ /* "lxml/objectify.pyx":1189
* else:
* has_string_value = True
* child = unicode(child) # <<<<<<<<<<<<<<
* _add_text(element, child)
*
*/
- __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1188, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_child, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1189
+ /* "lxml/objectify.pyx":1190
* has_string_value = True
* child = unicode(child)
* _add_text(element, child) # <<<<<<<<<<<<<<
*
* if self._annotate and not has_children:
*/
- __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error)
+ __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__pyx_L6:;
- /* "lxml/objectify.pyx":1146
+ /* "lxml/objectify.pyx":1147
* has_children = False
* has_string_value = False
* for child in children: # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1191
+ /* "lxml/objectify.pyx":1192
* _add_text(element, child)
*
* if self._annotate and not has_children: # <<<<<<<<<<<<<<
__pyx_L18_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1192
+ /* "lxml/objectify.pyx":1193
*
* if self._annotate and not has_children:
* if has_string_value: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_v_has_string_value != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1193
+ /* "lxml/objectify.pyx":1194
* if self._annotate and not has_children:
* if has_string_value:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str") # <<<<<<<<<<<<<<
* elif pytype_name is not None:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1193, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1194, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_5, __pyx_n_u_str); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1193, __pyx_L1_error)
+ __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_5, __pyx_n_u_str); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1194, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1192
+ /* "lxml/objectify.pyx":1193
*
* if self._annotate and not has_children:
* if has_string_value: # <<<<<<<<<<<<<<
goto __pyx_L20;
}
- /* "lxml/objectify.pyx":1194
+ /* "lxml/objectify.pyx":1195
* if has_string_value:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
* elif pytype_name is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1195
+ /* "lxml/objectify.pyx":1196
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
* elif pytype_name is not None:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name) # <<<<<<<<<<<<<<
*
* return element
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1195, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1196, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_5, __pyx_v_pytype_name); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1195, __pyx_L1_error)
+ __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_5, __pyx_v_pytype_name); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1196, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1194
+ /* "lxml/objectify.pyx":1195
* if has_string_value:
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
* elif pytype_name is not None: # <<<<<<<<<<<<<<
}
__pyx_L20:;
- /* "lxml/objectify.pyx":1191
+ /* "lxml/objectify.pyx":1192
* _add_text(element, child)
*
* if self._annotate and not has_children: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1197
+ /* "lxml/objectify.pyx":1198
* cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
*
* return element # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_element);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1131
+ /* "lxml/objectify.pyx":1132
* cdef bint _annotate
*
* def __call__(self, *children, **attrib): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1199
+/* "lxml/objectify.pyx":1200
* return element
*
* cdef _add_text(_Element elem, text): # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("_add_text", 0);
__Pyx_INCREF(__pyx_v_text);
- /* "lxml/objectify.pyx":1203
+ /* "lxml/objectify.pyx":1204
* # tail text, depending on the current tree state
* cdef tree.xmlNode* c_child
* c_child = cetree.findChildBackwards(elem._c_node, 0) # <<<<<<<<<<<<<<
*/
__pyx_v_c_child = findChildBackwards(__pyx_v_elem->_c_node, 0);
- /* "lxml/objectify.pyx":1204
+ /* "lxml/objectify.pyx":1205
* cdef tree.xmlNode* c_child
* c_child = cetree.findChildBackwards(elem._c_node, 0)
* if c_child is not NULL: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1205
+ /* "lxml/objectify.pyx":1206
* c_child = cetree.findChildBackwards(elem._c_node, 0)
* if c_child is not NULL:
* old = cetree.tailOf(c_child) # <<<<<<<<<<<<<<
* if old is not None:
* text = old + text
*/
- __pyx_t_2 = tailOf(__pyx_v_c_child); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1205, __pyx_L1_error)
+ __pyx_t_2 = tailOf(__pyx_v_c_child); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1206, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_old = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1206
+ /* "lxml/objectify.pyx":1207
* if c_child is not NULL:
* old = cetree.tailOf(c_child)
* if old is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1207
+ /* "lxml/objectify.pyx":1208
* old = cetree.tailOf(c_child)
* if old is not None:
* text = old + text # <<<<<<<<<<<<<<
* cetree.setTailText(c_child, text)
* else:
*/
- __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1207, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1206
+ /* "lxml/objectify.pyx":1207
* if c_child is not NULL:
* old = cetree.tailOf(c_child)
* if old is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1208
+ /* "lxml/objectify.pyx":1209
* if old is not None:
* text = old + text
* cetree.setTailText(c_child, text) # <<<<<<<<<<<<<<
* else:
* old = cetree.textOf(elem._c_node)
*/
- __pyx_t_4 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1208, __pyx_L1_error)
+ __pyx_t_4 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1209, __pyx_L1_error)
- /* "lxml/objectify.pyx":1204
+ /* "lxml/objectify.pyx":1205
* cdef tree.xmlNode* c_child
* c_child = cetree.findChildBackwards(elem._c_node, 0)
* if c_child is not NULL: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1210
+ /* "lxml/objectify.pyx":1211
* cetree.setTailText(c_child, text)
* else:
* old = cetree.textOf(elem._c_node) # <<<<<<<<<<<<<<
* text = old + text
*/
/*else*/ {
- __pyx_t_2 = textOf(__pyx_v_elem->_c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1210, __pyx_L1_error)
+ __pyx_t_2 = textOf(__pyx_v_elem->_c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_old = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1211
+ /* "lxml/objectify.pyx":1212
* else:
* old = cetree.textOf(elem._c_node)
* if old is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1212
+ /* "lxml/objectify.pyx":1213
* old = cetree.textOf(elem._c_node)
* if old is not None:
* text = old + text # <<<<<<<<<<<<<<
* cetree.setNodeText(elem._c_node, text)
*
*/
- __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1212, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1213, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_text, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1211
+ /* "lxml/objectify.pyx":1212
* else:
* old = cetree.textOf(elem._c_node)
* if old is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1213
+ /* "lxml/objectify.pyx":1214
* if old is not None:
* text = old + text
* cetree.setNodeText(elem._c_node, text) # <<<<<<<<<<<<<<
*
* cdef class ElementMaker:
*/
- __pyx_t_4 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1213, __pyx_L1_error)
+ __pyx_t_4 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1214, __pyx_L1_error)
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1199
+ /* "lxml/objectify.pyx":1200
* return element
*
* cdef _add_text(_Element elem, text): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1246
+/* "lxml/objectify.pyx":1247
* cdef bint _annotate
* cdef dict _cache
* def __init__(self, *, namespace=None, nsmap=None, annotate=True, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_True);
- /* "lxml/objectify.pyx":1247
+ /* "lxml/objectify.pyx":1248
* cdef dict _cache
* def __init__(self, *, namespace=None, nsmap=None, annotate=True,
* makeelement=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) __PYX_ERR(0, 1246, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) __PYX_ERR(0, 1247, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 0) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1246, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1247, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.ElementMaker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_9objectify_12ElementMaker___init__(((struct __pyx_obj_4lxml_9objectify_ElementMaker *)__pyx_v_self), __pyx_v_namespace, __pyx_v_nsmap, __pyx_v_annotate, __pyx_v_makeelement);
- /* "lxml/objectify.pyx":1246
+ /* "lxml/objectify.pyx":1247
* cdef bint _annotate
* cdef dict _cache
* def __init__(self, *, namespace=None, nsmap=None, annotate=True, # <<<<<<<<<<<<<<
__Pyx_RefNannySetupContext("__init__", 0);
__Pyx_INCREF(__pyx_v_nsmap);
- /* "lxml/objectify.pyx":1248
+ /* "lxml/objectify.pyx":1249
* def __init__(self, *, namespace=None, nsmap=None, annotate=True,
* makeelement=None):
* if nsmap is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1249
+ /* "lxml/objectify.pyx":1250
* makeelement=None):
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP if annotate else {} # <<<<<<<<<<<<<<
* self._nsmap = nsmap
* self._namespace = None if namespace is None else u"{%s}" % namespace
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1249, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1250, __pyx_L1_error)
if (__pyx_t_2) {
__Pyx_INCREF(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
__pyx_t_3 = __pyx_v_4lxml_9objectify__DEFAULT_NSMAP;
} else {
- __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1249, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1250, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1248
+ /* "lxml/objectify.pyx":1249
* def __init__(self, *, namespace=None, nsmap=None, annotate=True,
* makeelement=None):
* if nsmap is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1250
+ /* "lxml/objectify.pyx":1251
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP if annotate else {}
* self._nsmap = nsmap # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->_nsmap);
__pyx_v_self->_nsmap = __pyx_v_nsmap;
- /* "lxml/objectify.pyx":1251
+ /* "lxml/objectify.pyx":1252
* nsmap = _DEFAULT_NSMAP if annotate else {}
* self._nsmap = nsmap
* self._namespace = None if namespace is None else u"{%s}" % namespace # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_t_3 = Py_None;
} else {
- __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1251, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
__pyx_v_self->_namespace = __pyx_t_3;
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1252
+ /* "lxml/objectify.pyx":1253
* self._nsmap = nsmap
* self._namespace = None if namespace is None else u"{%s}" % namespace
* self._annotate = annotate # <<<<<<<<<<<<<<
* if makeelement is not None:
* if not callable(makeelement):
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1253, __pyx_L1_error)
__pyx_v_self->_annotate = __pyx_t_2;
- /* "lxml/objectify.pyx":1253
+ /* "lxml/objectify.pyx":1254
* self._namespace = None if namespace is None else u"{%s}" % namespace
* self._annotate = annotate
* if makeelement is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1254
+ /* "lxml/objectify.pyx":1255
* self._annotate = annotate
* if makeelement is not None:
* if not callable(makeelement): # <<<<<<<<<<<<<<
* raise TypeError(
* f"argument of 'makeelement' parameter must be callable, got {type(makeelement)}")
*/
- __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1254, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1255, __pyx_L1_error)
__pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
if (unlikely(__pyx_t_2)) {
- /* "lxml/objectify.pyx":1256
+ /* "lxml/objectify.pyx":1257
* if not callable(makeelement):
* raise TypeError(
* f"argument of 'makeelement' parameter must be callable, got {type(makeelement)}") # <<<<<<<<<<<<<<
* self._makeelement = makeelement
* else:
*/
- __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_makeelement)), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_makeelement)), __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_argument_of_makeelement_paramete, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1256, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_kp_u_argument_of_makeelement_paramete, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1257, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1255
+ /* "lxml/objectify.pyx":1256
* if makeelement is not None:
* if not callable(makeelement):
* raise TypeError( # <<<<<<<<<<<<<<
* f"argument of 'makeelement' parameter must be callable, got {type(makeelement)}")
* self._makeelement = makeelement
*/
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __PYX_ERR(0, 1255, __pyx_L1_error)
+ __PYX_ERR(0, 1256, __pyx_L1_error)
- /* "lxml/objectify.pyx":1254
+ /* "lxml/objectify.pyx":1255
* self._annotate = annotate
* if makeelement is not None:
* if not callable(makeelement): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1257
+ /* "lxml/objectify.pyx":1258
* raise TypeError(
* f"argument of 'makeelement' parameter must be callable, got {type(makeelement)}")
* self._makeelement = makeelement # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->_makeelement);
__pyx_v_self->_makeelement = __pyx_v_makeelement;
- /* "lxml/objectify.pyx":1253
+ /* "lxml/objectify.pyx":1254
* self._namespace = None if namespace is None else u"{%s}" % namespace
* self._annotate = annotate
* if makeelement is not None: # <<<<<<<<<<<<<<
goto __pyx_L4;
}
- /* "lxml/objectify.pyx":1259
+ /* "lxml/objectify.pyx":1260
* self._makeelement = makeelement
* else:
* self._makeelement = None # <<<<<<<<<<<<<<
}
__pyx_L4:;
- /* "lxml/objectify.pyx":1260
+ /* "lxml/objectify.pyx":1261
* else:
* self._makeelement = None
* self._cache = {} # <<<<<<<<<<<<<<
*
* @cython.final
*/
- __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1260, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_v_self->_cache);
__pyx_v_self->_cache = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1246
+ /* "lxml/objectify.pyx":1247
* cdef bint _annotate
* cdef dict _cache
* def __init__(self, *, namespace=None, nsmap=None, annotate=True, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1263
+/* "lxml/objectify.pyx":1264
*
* @cython.final
* cdef _build_element_maker(self, tag, bint caching): # <<<<<<<<<<<<<<
int __pyx_t_6;
__Pyx_RefNannySetupContext("_build_element_maker", 0);
- /* "lxml/objectify.pyx":1265
+ /* "lxml/objectify.pyx":1266
* cdef _build_element_maker(self, tag, bint caching):
* cdef _ObjectifyElementMakerCaller element_maker
* element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller) # <<<<<<<<<<<<<<
* if self._namespace is not None and tag[0] != u"{":
* element_maker._tag = self._namespace + tag
*/
- __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(((PyTypeObject *)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(((PyTypeObject *)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __pyx_L1_error)
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__pyx_v_element_maker = ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1266
+ /* "lxml/objectify.pyx":1267
* cdef _ObjectifyElementMakerCaller element_maker
* element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)
* if self._namespace is not None and tag[0] != u"{": # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
- __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1267, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__9, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1266, __pyx_L1_error)
+ __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_kp_u__9, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1267, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __pyx_t_4;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1267
+ /* "lxml/objectify.pyx":1268
* element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)
* if self._namespace is not None and tag[0] != u"{":
* element_maker._tag = self._namespace + tag # <<<<<<<<<<<<<<
* else:
* element_maker._tag = tag
*/
- __pyx_t_1 = PyNumber_Add(__pyx_v_self->_namespace, __pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1267, __pyx_L1_error)
+ __pyx_t_1 = PyNumber_Add(__pyx_v_self->_namespace, __pyx_v_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1268, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_v_element_maker->_tag);
__pyx_v_element_maker->_tag = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1266
+ /* "lxml/objectify.pyx":1267
* cdef _ObjectifyElementMakerCaller element_maker
* element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)
* if self._namespace is not None and tag[0] != u"{": # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1269
+ /* "lxml/objectify.pyx":1270
* element_maker._tag = self._namespace + tag
* else:
* element_maker._tag = tag # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1270
+ /* "lxml/objectify.pyx":1271
* else:
* element_maker._tag = tag
* element_maker._nsmap = self._nsmap # <<<<<<<<<<<<<<
__pyx_v_element_maker->_nsmap = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1271
+ /* "lxml/objectify.pyx":1272
* element_maker._tag = tag
* element_maker._nsmap = self._nsmap
* element_maker._annotate = self._annotate # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_v_self->_annotate;
__pyx_v_element_maker->_annotate = __pyx_t_2;
- /* "lxml/objectify.pyx":1272
+ /* "lxml/objectify.pyx":1273
* element_maker._nsmap = self._nsmap
* element_maker._annotate = self._annotate
* element_maker._element_factory = self._makeelement # <<<<<<<<<<<<<<
__pyx_v_element_maker->_element_factory = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1273
+ /* "lxml/objectify.pyx":1274
* element_maker._annotate = self._annotate
* element_maker._element_factory = self._makeelement
* if caching: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_caching != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1274
+ /* "lxml/objectify.pyx":1275
* element_maker._element_factory = self._makeelement
* if caching:
* if len(self._cache) > 200: # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 1274, __pyx_L1_error)
+ __PYX_ERR(0, 1275, __pyx_L1_error)
}
- __pyx_t_5 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1274, __pyx_L1_error)
+ __pyx_t_5 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1275, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = ((__pyx_t_5 > 0xC8) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1275
+ /* "lxml/objectify.pyx":1276
* if caching:
* if len(self._cache) > 200:
* self._cache.clear() # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_cache == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear");
- __PYX_ERR(0, 1275, __pyx_L1_error)
+ __PYX_ERR(0, 1276, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_PyDict_Clear(__pyx_v_self->_cache); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1275, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyDict_Clear(__pyx_v_self->_cache); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1276, __pyx_L1_error)
- /* "lxml/objectify.pyx":1274
+ /* "lxml/objectify.pyx":1275
* element_maker._element_factory = self._makeelement
* if caching:
* if len(self._cache) > 200: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1276
+ /* "lxml/objectify.pyx":1277
* if len(self._cache) > 200:
* self._cache.clear()
* self._cache[tag] = element_maker # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_cache == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 1276, __pyx_L1_error)
+ __PYX_ERR(0, 1277, __pyx_L1_error)
}
- if (unlikely(PyDict_SetItem(__pyx_v_self->_cache, __pyx_v_tag, ((PyObject *)__pyx_v_element_maker)) < 0)) __PYX_ERR(0, 1276, __pyx_L1_error)
+ if (unlikely(PyDict_SetItem(__pyx_v_self->_cache, __pyx_v_tag, ((PyObject *)__pyx_v_element_maker)) < 0)) __PYX_ERR(0, 1277, __pyx_L1_error)
- /* "lxml/objectify.pyx":1273
+ /* "lxml/objectify.pyx":1274
* element_maker._annotate = self._annotate
* element_maker._element_factory = self._makeelement
* if caching: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1277
+ /* "lxml/objectify.pyx":1278
* self._cache.clear()
* self._cache[tag] = element_maker
* return element_maker # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_v_element_maker);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1263
+ /* "lxml/objectify.pyx":1264
*
* @cython.final
* cdef _build_element_maker(self, tag, bint caching): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1279
+/* "lxml/objectify.pyx":1280
* return element_maker
*
* def __getattr__(self, tag): # <<<<<<<<<<<<<<
PyObject *__pyx_t_7 = NULL;
__Pyx_RefNannySetupContext("__getattr__", 0);
- /* "lxml/objectify.pyx":1280
+ /* "lxml/objectify.pyx":1281
*
* def __getattr__(self, tag):
* element_maker = self._cache.get(tag) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_cache == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1280, __pyx_L1_error)
+ __PYX_ERR(0, 1281, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_cache, __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1280, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_cache, __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_element_maker = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1281
+ /* "lxml/objectify.pyx":1282
* def __getattr__(self, tag):
* element_maker = self._cache.get(tag)
* if element_maker is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1282
+ /* "lxml/objectify.pyx":1283
* element_maker = self._cache.get(tag)
* if element_maker is None:
* if is_special_method(tag): # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_tag) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_tag);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1282, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1282, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1283, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1283
+ /* "lxml/objectify.pyx":1284
* if element_maker is None:
* if is_special_method(tag):
* return object.__getattr__(self, tag) # <<<<<<<<<<<<<<
* return element_maker
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s_getattr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1283, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s_getattr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_tag};
- __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_tag};
- __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_1);
} else
#endif
{
- __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1283, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_tag);
__Pyx_GIVEREF(__pyx_v_tag);
PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_tag);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1283, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1282
+ /* "lxml/objectify.pyx":1283
* element_maker = self._cache.get(tag)
* if element_maker is None:
* if is_special_method(tag): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1284
+ /* "lxml/objectify.pyx":1285
* if is_special_method(tag):
* return object.__getattr__(self, tag)
* return self._build_element_maker(tag, caching=True) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1284, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1285, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1281
+ /* "lxml/objectify.pyx":1282
* def __getattr__(self, tag):
* element_maker = self._cache.get(tag)
* if element_maker is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1285
+ /* "lxml/objectify.pyx":1286
* return object.__getattr__(self, tag)
* return self._build_element_maker(tag, caching=True)
* return element_maker # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_element_maker;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1279
+ /* "lxml/objectify.pyx":1280
* return element_maker
*
* def __getattr__(self, tag): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1287
+/* "lxml/objectify.pyx":1288
* return element_maker
*
* def __call__(self, tag, *args, **kwargs): # <<<<<<<<<<<<<<
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) __PYX_ERR(0, 1287, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) __PYX_ERR(0, 1288, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1287, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1288, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("__call__", 0);
- /* "lxml/objectify.pyx":1288
+ /* "lxml/objectify.pyx":1289
*
* def __call__(self, tag, *args, **kwargs):
* element_maker = self._cache.get(tag) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_self->_cache == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1288, __pyx_L1_error)
+ __PYX_ERR(0, 1289, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_cache, __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1288, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->_cache, __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1289, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_element_maker = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1289
+ /* "lxml/objectify.pyx":1290
* def __call__(self, tag, *args, **kwargs):
* element_maker = self._cache.get(tag)
* if element_maker is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1291
+ /* "lxml/objectify.pyx":1292
* if element_maker is None:
* element_maker = self._build_element_maker(
* tag, caching=not is_special_method(tag)) # <<<<<<<<<<<<<<
}
__pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_tag) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_tag);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1291, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1292, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1291, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1292, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1290
+ /* "lxml/objectify.pyx":1291
* element_maker = self._cache.get(tag)
* if element_maker is None:
* element_maker = self._build_element_maker( # <<<<<<<<<<<<<<
* tag, caching=not is_special_method(tag))
* return element_maker(*args, **kwargs)
*/
- __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag, (!__pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1290, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag, (!__pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_element_maker, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1289
+ /* "lxml/objectify.pyx":1290
* def __call__(self, tag, *args, **kwargs):
* element_maker = self._cache.get(tag)
* if element_maker is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1292
+ /* "lxml/objectify.pyx":1293
* element_maker = self._build_element_maker(
* tag, caching=not is_special_method(tag))
* return element_maker(*args, **kwargs) # <<<<<<<<<<<<<<
* ################################################################################
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_element_maker, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1292, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_element_maker, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1287
+ /* "lxml/objectify.pyx":1288
* return element_maker
*
* def __call__(self, tag, *args, **kwargs): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1299
+/* "lxml/objectify.pyx":1300
* cdef bint __RECURSIVE_STR = 0 # default: off
*
* def enable_recursive_str(on=True): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "enable_recursive_str") < 0)) __PYX_ERR(0, 1299, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "enable_recursive_str") < 0)) __PYX_ERR(0, 1300, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("enable_recursive_str", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1299, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("enable_recursive_str", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1300, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.enable_recursive_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
int __pyx_t_1;
__Pyx_RefNannySetupContext("enable_recursive_str", 0);
- /* "lxml/objectify.pyx":1306
+ /* "lxml/objectify.pyx":1307
* """
* global __RECURSIVE_STR
* __RECURSIVE_STR = on # <<<<<<<<<<<<<<
*
* def dump(_Element element not None):
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_on); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_on); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1307, __pyx_L1_error)
__pyx_v_4lxml_9objectify___RECURSIVE_STR = __pyx_t_1;
- /* "lxml/objectify.pyx":1299
+ /* "lxml/objectify.pyx":1300
* cdef bint __RECURSIVE_STR = 0 # default: off
*
* def enable_recursive_str(on=True): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1308
+/* "lxml/objectify.pyx":1309
* __RECURSIVE_STR = on
*
* def dump(_Element element not None): # <<<<<<<<<<<<<<
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("dump (wrapper)", 0);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_8includes_11etreepublic__Element, 0, "element", 0))) __PYX_ERR(0, 1308, __pyx_L1_error)
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_8includes_11etreepublic__Element, 0, "element", 0))) __PYX_ERR(0, 1309, __pyx_L1_error)
__pyx_r = __pyx_pf_4lxml_9objectify_14dump(__pyx_self, ((struct LxmlElement *)__pyx_v_element));
/* function exit code */
PyObject *__pyx_t_1 = NULL;
__Pyx_RefNannySetupContext("dump", 0);
- /* "lxml/objectify.pyx":1313
+ /* "lxml/objectify.pyx":1314
* Return a recursively generated string representation of an element.
* """
* return _dump(element, 0) # <<<<<<<<<<<<<<
* cdef object _dump(_Element element, int indent):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __pyx_f_4lxml_9objectify__dump(__pyx_v_element, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__dump(__pyx_v_element, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1308
+ /* "lxml/objectify.pyx":1309
* __RECURSIVE_STR = on
*
* def dump(_Element element not None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1315
+/* "lxml/objectify.pyx":1316
* return _dump(element, 0)
*
* cdef object _dump(_Element element, int indent): # <<<<<<<<<<<<<<
Py_ssize_t __pyx_t_13;
__Pyx_RefNannySetupContext("_dump", 0);
- /* "lxml/objectify.pyx":1316
+ /* "lxml/objectify.pyx":1317
*
* cdef object _dump(_Element element, int indent):
* indentstr = u" " * indent # <<<<<<<<<<<<<<
* if isinstance(element, ObjectifiedDataElement):
* value = repr(element)
*/
- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_indent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Multiply(__pyx_kp_u__10, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Multiply(__pyx_kp_u__10, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1317, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 1316, __pyx_L1_error)
+ if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 1317, __pyx_L1_error)
__pyx_v_indentstr = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1317
+ /* "lxml/objectify.pyx":1318
* cdef object _dump(_Element element, int indent):
* indentstr = u" " * indent
* if isinstance(element, ObjectifiedDataElement): # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1318
+ /* "lxml/objectify.pyx":1319
* indentstr = u" " * indent
* if isinstance(element, ObjectifiedDataElement):
* value = repr(element) # <<<<<<<<<<<<<<
* else:
* value = textOf(element._c_node)
*/
- __pyx_t_2 = PyObject_Repr(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1318, __pyx_L1_error)
+ __pyx_t_2 = PyObject_Repr(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_value = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1317
+ /* "lxml/objectify.pyx":1318
* cdef object _dump(_Element element, int indent):
* indentstr = u" " * indent
* if isinstance(element, ObjectifiedDataElement): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1320
+ /* "lxml/objectify.pyx":1321
* value = repr(element)
* else:
* value = textOf(element._c_node) # <<<<<<<<<<<<<<
* if not value.strip():
*/
/*else*/ {
- __pyx_t_2 = textOf(__pyx_v_element->_c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
+ __pyx_t_2 = textOf(__pyx_v_element->_c_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1321, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_value = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1321
+ /* "lxml/objectify.pyx":1322
* else:
* value = textOf(element._c_node)
* if value is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_4 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1322
+ /* "lxml/objectify.pyx":1323
* value = textOf(element._c_node)
* if value is not None:
* if not value.strip(): # <<<<<<<<<<<<<<
* value = None
* else:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_strip); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1322, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_strip); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
}
__pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1322, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1323, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1322, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1323, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_4 = ((!__pyx_t_3) != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1323
+ /* "lxml/objectify.pyx":1324
* if value is not None:
* if not value.strip():
* value = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_value, Py_None);
- /* "lxml/objectify.pyx":1322
+ /* "lxml/objectify.pyx":1323
* value = textOf(element._c_node)
* if value is not None:
* if not value.strip(): # <<<<<<<<<<<<<<
goto __pyx_L5;
}
- /* "lxml/objectify.pyx":1325
+ /* "lxml/objectify.pyx":1326
* value = None
* else:
* value = repr(value) # <<<<<<<<<<<<<<
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
*/
/*else*/ {
- __pyx_t_2 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1325, __pyx_L1_error)
+ __pyx_t_2 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1326, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
__pyx_t_2 = 0;
}
__pyx_L5:;
- /* "lxml/objectify.pyx":1321
+ /* "lxml/objectify.pyx":1322
* else:
* value = textOf(element._c_node)
* if value is not None: # <<<<<<<<<<<<<<
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1326
+ /* "lxml/objectify.pyx":1327
* else:
* value = repr(value)
* result = f"{indentstr}{element.tag} = {value} [{_typename(element)}]\n" # <<<<<<<<<<<<<<
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
*/
- __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = 0;
__pyx_t_7 = 127;
- __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_indentstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_indentstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7;
__pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_7;
__pyx_t_6 += 3;
__Pyx_GIVEREF(__pyx_kp_u__11);
PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_kp_u__11);
- __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_7;
__pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
__pyx_t_6 += 2;
__Pyx_GIVEREF(__pyx_kp_u__12);
PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u__12);
- __pyx_t_5 = __pyx_f_4lxml_9objectify__typename(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_5 = __pyx_f_4lxml_9objectify__typename(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7;
__pyx_t_6 += 2;
__Pyx_GIVEREF(__pyx_kp_u__13);
PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_kp_u__13);
- __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 7, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1326, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_2, 7, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_result = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1327
+ /* "lxml/objectify.pyx":1328
* value = repr(value)
* result = f"{indentstr}{element.tag} = {value} [{_typename(element)}]\n"
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS # <<<<<<<<<<<<<<
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3):
*/
- __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1328, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_xsi_ns = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1328
+ /* "lxml/objectify.pyx":1329
* result = f"{indentstr}{element.tag} = {value} [{_typename(element)}]\n"
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE # <<<<<<<<<<<<<<
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name:
*/
- __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1328, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_2, __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_pytype_ns = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1329
+ /* "lxml/objectify.pyx":1330
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3): # <<<<<<<<<<<<<<
* if u'{' in name:
* if name == PYTYPE_ATTRIBUTE:
*/
- __pyx_t_1 = iterattributes(__pyx_v_element, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_1 = iterattributes(__pyx_v_element, 3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
__pyx_t_8 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1330, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1330, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1330, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1329, __pyx_L1_error)
+ else __PYX_ERR(0, 1330, __pyx_L1_error)
}
break;
}
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1329, __pyx_L1_error)
+ __PYX_ERR(0, 1330, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx_t_9);
#else
- __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1329, __pyx_L1_error)
+ __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
__Pyx_GOTREF(__pyx_t_5);
index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L8_unpacking_failed;
__Pyx_GOTREF(__pyx_t_9);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 1329, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 1330, __pyx_L1_error)
__pyx_t_11 = NULL;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L9_unpacking_done;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1329, __pyx_L1_error)
+ __PYX_ERR(0, 1330, __pyx_L1_error)
__pyx_L9_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_9);
__pyx_t_9 = 0;
- /* "lxml/objectify.pyx":1330
+ /* "lxml/objectify.pyx":1331
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name: # <<<<<<<<<<<<<<
* if name == PYTYPE_ATTRIBUTE:
* if value == TREE_PYTYPE_NAME:
*/
- __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__9, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1330, __pyx_L1_error)
+ __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__9, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1331, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1331
+ /* "lxml/objectify.pyx":1332
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name:
* if name == PYTYPE_ATTRIBUTE: # <<<<<<<<<<<<<<
* if value == TREE_PYTYPE_NAME:
* continue
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1331, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_9 = PyObject_RichCompare(__pyx_v_name, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1331, __pyx_L1_error)
+ __pyx_t_9 = PyObject_RichCompare(__pyx_v_name, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1331, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1332
+ /* "lxml/objectify.pyx":1333
* if u'{' in name:
* if name == PYTYPE_ATTRIBUTE:
* if value == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
* continue
* else:
*/
- __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1332, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1333, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1333
+ /* "lxml/objectify.pyx":1334
* if name == PYTYPE_ATTRIBUTE:
* if value == TREE_PYTYPE_NAME:
* continue # <<<<<<<<<<<<<<
*/
goto __pyx_L6_continue;
- /* "lxml/objectify.pyx":1332
+ /* "lxml/objectify.pyx":1333
* if u'{' in name:
* if name == PYTYPE_ATTRIBUTE:
* if value == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1335
+ /* "lxml/objectify.pyx":1336
* continue
* else:
* name = name.replace(pytype_ns, u'py:') # <<<<<<<<<<<<<<
* result += f"{indentstr} * {name} = {value!r}\n"
*/
/*else*/ {
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1335, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = NULL;
__pyx_t_12 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pytype_ns, __pyx_kp_u_py};
- __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1335, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_9);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_pytype_ns, __pyx_kp_u_py};
- __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1335, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_GOTREF(__pyx_t_9);
} else
#endif
{
- __pyx_t_10 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1335, __pyx_L1_error)
+ __pyx_t_10 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (__pyx_t_5) {
__Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_kp_u_py);
__Pyx_GIVEREF(__pyx_kp_u_py);
PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_12, __pyx_kp_u_py);
- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1335, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__pyx_t_9 = 0;
}
- /* "lxml/objectify.pyx":1331
+ /* "lxml/objectify.pyx":1332
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name:
* if name == PYTYPE_ATTRIBUTE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1336
+ /* "lxml/objectify.pyx":1337
* else:
* name = name.replace(pytype_ns, u'py:')
* name = name.replace(xsi_ns, u'xsi:') # <<<<<<<<<<<<<<
* result += f"{indentstr} * {name} = {value!r}\n"
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1336, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = NULL;
__pyx_t_12 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_xsi_ns, __pyx_kp_u_xsi};
- __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_GOTREF(__pyx_t_9);
} else
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_v_xsi_ns, __pyx_kp_u_xsi};
- __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_GOTREF(__pyx_t_9);
} else
#endif
{
- __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1336, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (__pyx_t_10) {
__Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __pyx_t_10 = NULL;
__Pyx_INCREF(__pyx_kp_u_xsi);
__Pyx_GIVEREF(__pyx_kp_u_xsi);
PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_kp_u_xsi);
- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1336, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__Pyx_DECREF_SET(__pyx_v_name, __pyx_t_9);
__pyx_t_9 = 0;
- /* "lxml/objectify.pyx":1330
+ /* "lxml/objectify.pyx":1331
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3):
* if u'{' in name: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1337
+ /* "lxml/objectify.pyx":1338
* name = name.replace(pytype_ns, u'py:')
* name = name.replace(xsi_ns, u'xsi:')
* result += f"{indentstr} * {name} = {value!r}\n" # <<<<<<<<<<<<<<
*
* indent += 1
*/
- __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = 0;
__pyx_t_7 = 127;
- __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_indentstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_indentstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7;
__pyx_t_13 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
__pyx_t_13 += 4;
__Pyx_GIVEREF(__pyx_kp_u__14);
PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_kp_u__14);
- __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_name, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7;
__pyx_t_13 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
__pyx_t_13 += 3;
__Pyx_GIVEREF(__pyx_kp_u__11);
PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_kp_u__11);
- __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_value), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_value), __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_7) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_7;
__pyx_t_13 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1);
__pyx_t_13 += 1;
__Pyx_GIVEREF(__pyx_kp_u__15);
PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_kp_u__15);
- __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_9, 6, __pyx_t_13, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_9, 6, __pyx_t_13, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- __pyx_t_9 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_result, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_result, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_9);
__pyx_t_9 = 0;
- /* "lxml/objectify.pyx":1329
+ /* "lxml/objectify.pyx":1330
* xsi_ns = u"{%s}" % XML_SCHEMA_INSTANCE_NS
* pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
* for name, value in cetree.iterattributes(element, 3): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1339
+ /* "lxml/objectify.pyx":1340
* result += f"{indentstr} * {name} = {value!r}\n"
*
* indent += 1 # <<<<<<<<<<<<<<
*/
__pyx_v_indent = (__pyx_v_indent + 1);
- /* "lxml/objectify.pyx":1340
+ /* "lxml/objectify.pyx":1341
*
* indent += 1
* for child in element.iterchildren(): # <<<<<<<<<<<<<<
* result += _dump(child, indent)
* if indent == 1:
*/
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_iterchildren); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s_iterchildren); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
}
__pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_9 = __pyx_t_2; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
__pyx_t_8 = NULL;
} else {
- __pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
- __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1341, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_9))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1340, __pyx_L1_error)
+ else __PYX_ERR(0, 1341, __pyx_L1_error)
}
break;
}
__Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1341
+ /* "lxml/objectify.pyx":1342
* indent += 1
* for child in element.iterchildren():
* result += _dump(child, indent) # <<<<<<<<<<<<<<
* if indent == 1:
* return result[:-1] # strip last '\n'
*/
- if (!(likely(((__pyx_v_child) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_child, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1341, __pyx_L1_error)
- __pyx_t_2 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_child), __pyx_v_indent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1341, __pyx_L1_error)
+ if (!(likely(((__pyx_v_child) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_child, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) __PYX_ERR(0, 1342, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_child), __pyx_v_indent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1341, __pyx_L1_error)
+ __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1342, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1340
+ /* "lxml/objectify.pyx":1341
*
* indent += 1
* for child in element.iterchildren(): # <<<<<<<<<<<<<<
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "lxml/objectify.pyx":1342
+ /* "lxml/objectify.pyx":1343
* for child in element.iterchildren():
* result += _dump(child, indent)
* if indent == 1: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_indent == 1) != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1343
+ /* "lxml/objectify.pyx":1344
* result += _dump(child, indent)
* if indent == 1:
* return result[:-1] # strip last '\n' # <<<<<<<<<<<<<<
* return result
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_result, 0, -1L, NULL, NULL, &__pyx_slice__16, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1343, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_result, 0, -1L, NULL, NULL, &__pyx_slice__16, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_r = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1342
+ /* "lxml/objectify.pyx":1343
* for child in element.iterchildren():
* result += _dump(child, indent)
* if indent == 1: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1345
+ /* "lxml/objectify.pyx":1346
* return result[:-1] # strip last '\n'
* else:
* return result # <<<<<<<<<<<<<<
goto __pyx_L0;
}
- /* "lxml/objectify.pyx":1315
+ /* "lxml/objectify.pyx":1316
* return _dump(element, 0)
*
* cdef object _dump(_Element element, int indent): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1351
+/* "lxml/objectify.pyx":1352
* # Pickle support for objectified ElementTree
*
* def __unpickleElementTree(data): # <<<<<<<<<<<<<<
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("__unpickleElementTree", 0);
- /* "lxml/objectify.pyx":1352
+ /* "lxml/objectify.pyx":1353
*
* def __unpickleElementTree(data):
* return etree.ElementTree(fromstring(data)) # <<<<<<<<<<<<<<
* cdef _setupPickle(elementTreeReduceFunction):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_ElementTree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1352, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_ElementTree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fromstring); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1352, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fromstring); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_data) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_data);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1352, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = NULL;
__pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1352, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1351
+ /* "lxml/objectify.pyx":1352
* # Pickle support for objectified ElementTree
*
* def __unpickleElementTree(data): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1354
+/* "lxml/objectify.pyx":1355
* return etree.ElementTree(fromstring(data))
*
* cdef _setupPickle(elementTreeReduceFunction): # <<<<<<<<<<<<<<
PyObject *__pyx_t_8 = NULL;
__Pyx_RefNannySetupContext("_setupPickle", 0);
- /* "lxml/objectify.pyx":1355
+ /* "lxml/objectify.pyx":1356
*
* cdef _setupPickle(elementTreeReduceFunction):
* if python.IS_PYTHON2: # <<<<<<<<<<<<<<
__pyx_t_1 = (IS_PYTHON2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1356
+ /* "lxml/objectify.pyx":1357
* cdef _setupPickle(elementTreeReduceFunction):
* if python.IS_PYTHON2:
* import copy_reg as copyreg # <<<<<<<<<<<<<<
* else:
* import copyreg
*/
- __pyx_t_2 = __Pyx_Import(__pyx_n_s_copy_reg, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1356, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Import(__pyx_n_s_copy_reg, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1357, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_copyreg = __pyx_t_2;
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1355
+ /* "lxml/objectify.pyx":1356
*
* cdef _setupPickle(elementTreeReduceFunction):
* if python.IS_PYTHON2: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1358
+ /* "lxml/objectify.pyx":1359
* import copy_reg as copyreg
* else:
* import copyreg # <<<<<<<<<<<<<<
* elementTreeReduceFunction, __unpickleElementTree)
*/
/*else*/ {
- __pyx_t_2 = __Pyx_Import(__pyx_n_s_copyreg, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_Import(__pyx_n_s_copyreg, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_copyreg = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1359
+ /* "lxml/objectify.pyx":1360
* else:
* import copyreg
* copyreg.pickle(etree._ElementTree, # <<<<<<<<<<<<<<
* elementTreeReduceFunction, __unpickleElementTree)
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s_pickle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s_pickle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_ElementTree_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_ElementTree_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- /* "lxml/objectify.pyx":1360
+ /* "lxml/objectify.pyx":1361
* import copyreg
* copyreg.pickle(etree._ElementTree,
* elementTreeReduceFunction, __unpickleElementTree) # <<<<<<<<<<<<<<
*
* def pickleReduceElementTree(obj):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_unpickleElementTree); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1360, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_unpickleElementTree); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_4, __pyx_v_elementTreeReduceFunction, __pyx_t_5};
- __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_4, __pyx_v_elementTreeReduceFunction, __pyx_t_5};
- __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else
#endif
{
- __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (__pyx_t_6) {
__Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_5);
__pyx_t_4 = 0;
__pyx_t_5 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1354
+ /* "lxml/objectify.pyx":1355
* return etree.ElementTree(fromstring(data))
*
* cdef _setupPickle(elementTreeReduceFunction): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1362
+/* "lxml/objectify.pyx":1363
* elementTreeReduceFunction, __unpickleElementTree)
*
* def pickleReduceElementTree(obj): # <<<<<<<<<<<<<<
PyObject *__pyx_t_4 = NULL;
__Pyx_RefNannySetupContext("pickleReduceElementTree", 0);
- /* "lxml/objectify.pyx":1363
+ /* "lxml/objectify.pyx":1364
*
* def pickleReduceElementTree(obj):
* return __unpickleElementTree, (etree.tostring(obj),) # <<<<<<<<<<<<<<
* _setupPickle(pickleReduceElementTree)
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_unpickleElementTree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1363, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_unpickleElementTree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_tostring); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1363, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_tostring); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_obj) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_obj);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1363, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1363, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1363, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1364, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1362
+ /* "lxml/objectify.pyx":1363
* elementTreeReduceFunction, __unpickleElementTree)
*
* def pickleReduceElementTree(obj): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1377
+/* "lxml/objectify.pyx":1378
* cdef object empty_data_class
* cdef object tree_class
* def __init__(self, tree_class=None, empty_data_class=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1377, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 1378, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1377, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1378, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.ObjectifyElementClassLookup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_INCREF(__pyx_v_tree_class);
__Pyx_INCREF(__pyx_v_empty_data_class);
- /* "lxml/objectify.pyx":1386
+ /* "lxml/objectify.pyx":1387
* empty data elements (defaults to StringElement).
* """
* self._lookup_function = _lookupElementClass # <<<<<<<<<<<<<<
*/
__pyx_v_self->__pyx_base._lookup_function = __pyx_f_4lxml_9objectify__lookupElementClass;
- /* "lxml/objectify.pyx":1387
+ /* "lxml/objectify.pyx":1388
* """
* self._lookup_function = _lookupElementClass
* if tree_class is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1388
+ /* "lxml/objectify.pyx":1389
* self._lookup_function = _lookupElementClass
* if tree_class is None:
* tree_class = ObjectifiedElement # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
__Pyx_DECREF_SET(__pyx_v_tree_class, ((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
- /* "lxml/objectify.pyx":1387
+ /* "lxml/objectify.pyx":1388
* """
* self._lookup_function = _lookupElementClass
* if tree_class is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1389
+ /* "lxml/objectify.pyx":1390
* if tree_class is None:
* tree_class = ObjectifiedElement
* self.tree_class = tree_class # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->tree_class);
__pyx_v_self->tree_class = __pyx_v_tree_class;
- /* "lxml/objectify.pyx":1390
+ /* "lxml/objectify.pyx":1391
* tree_class = ObjectifiedElement
* self.tree_class = tree_class
* if empty_data_class is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1391
+ /* "lxml/objectify.pyx":1392
* self.tree_class = tree_class
* if empty_data_class is None:
* empty_data_class = StringElement # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement));
__Pyx_DECREF_SET(__pyx_v_empty_data_class, ((PyObject *)__pyx_ptype_4lxml_9objectify_StringElement));
- /* "lxml/objectify.pyx":1390
+ /* "lxml/objectify.pyx":1391
* tree_class = ObjectifiedElement
* self.tree_class = tree_class
* if empty_data_class is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1392
+ /* "lxml/objectify.pyx":1393
* if empty_data_class is None:
* empty_data_class = StringElement
* self.empty_data_class = empty_data_class # <<<<<<<<<<<<<<
__Pyx_DECREF(__pyx_v_self->empty_data_class);
__pyx_v_self->empty_data_class = __pyx_v_empty_data_class;
- /* "lxml/objectify.pyx":1377
+ /* "lxml/objectify.pyx":1378
* cdef object empty_data_class
* cdef object tree_class
* def __init__(self, tree_class=None, empty_data_class=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1394
+/* "lxml/objectify.pyx":1395
* self.empty_data_class = empty_data_class
*
* cdef object _lookupElementClass(state, _Document doc, tree.xmlNode* c_node): # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_8)(PyObject *);
__Pyx_RefNannySetupContext("_lookupElementClass", 0);
- /* "lxml/objectify.pyx":1396
+ /* "lxml/objectify.pyx":1397
* cdef object _lookupElementClass(state, _Document doc, tree.xmlNode* c_node):
* cdef ObjectifyElementClassLookup lookup
* lookup = <ObjectifyElementClassLookup>state # <<<<<<<<<<<<<<
__pyx_v_lookup = ((struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1398
+ /* "lxml/objectify.pyx":1399
* lookup = <ObjectifyElementClassLookup>state
* # if element has children => no data class
* if cetree.hasChild(c_node): # <<<<<<<<<<<<<<
__pyx_t_2 = (hasChild(__pyx_v_c_node) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1399
+ /* "lxml/objectify.pyx":1400
* # if element has children => no data class
* if cetree.hasChild(c_node):
* return lookup.tree_class # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_lookup->tree_class;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1398
+ /* "lxml/objectify.pyx":1399
* lookup = <ObjectifyElementClassLookup>state
* # if element has children => no data class
* if cetree.hasChild(c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1402
+ /* "lxml/objectify.pyx":1403
*
* # if element is defined as xsi:nil, return NoneElement class
* if u"true" == cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil"):
* return NoneElement
*/
- __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"nil")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1402, __pyx_L1_error)
+ __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"nil")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1403, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_n_u_true, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1402, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_n_u_true, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1403, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1404
+ /* "lxml/objectify.pyx":1405
* if u"true" == cetree.attributeValueFromNsName(
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil"):
* return NoneElement # <<<<<<<<<<<<<<
__pyx_r = ((PyObject *)__pyx_ptype_4lxml_9objectify_NoneElement);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1402
+ /* "lxml/objectify.pyx":1403
*
* # if element is defined as xsi:nil, return NoneElement class
* if u"true" == cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1407
+ /* "lxml/objectify.pyx":1408
*
* # check for Python type hint
* value = cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if value is not None:
*/
- __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1407, __pyx_L1_error)
+ __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_value = __pyx_t_1;
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1409
+ /* "lxml/objectify.pyx":1410
* value = cetree.attributeValueFromNsName(
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if value is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1410
+ /* "lxml/objectify.pyx":1411
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if value is not None:
* if value == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
* return lookup.tree_class
* py_type = <PyType>_PYTYPE_DICT.get(value)
*/
- __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1410, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1411, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1411
+ /* "lxml/objectify.pyx":1412
* if value is not None:
* if value == TREE_PYTYPE_NAME:
* return lookup.tree_class # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_lookup->tree_class;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1410
+ /* "lxml/objectify.pyx":1411
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if value is not None:
* if value == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1412
+ /* "lxml/objectify.pyx":1413
* if value == TREE_PYTYPE_NAME:
* return lookup.tree_class
* py_type = <PyType>_PYTYPE_DICT.get(value) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1412, __pyx_L1_error)
+ __PYX_ERR(0, 1413, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1412, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_py_type = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1413
+ /* "lxml/objectify.pyx":1414
* return lookup.tree_class
* py_type = <PyType>_PYTYPE_DICT.get(value)
* if py_type is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1414
+ /* "lxml/objectify.pyx":1415
* py_type = <PyType>_PYTYPE_DICT.get(value)
* if py_type is not None:
* return py_type._type # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_py_type->_type;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1413
+ /* "lxml/objectify.pyx":1414
* return lookup.tree_class
* py_type = <PyType>_PYTYPE_DICT.get(value)
* if py_type is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1409
+ /* "lxml/objectify.pyx":1410
* value = cetree.attributeValueFromNsName(
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if value is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1418
+ /* "lxml/objectify.pyx":1419
*
* # check for XML Schema type hint
* value = cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
*
*/
- __pyx_t_4 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"type")))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1418, __pyx_L1_error)
+ __pyx_t_4 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"type")))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1421
+ /* "lxml/objectify.pyx":1422
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
*
* if value is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1422
+ /* "lxml/objectify.pyx":1423
*
* if value is not None:
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1422, __pyx_L1_error)
+ __PYX_ERR(0, 1423, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1422, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1423, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_schema_type = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1423
+ /* "lxml/objectify.pyx":1424
* if value is not None:
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is None and u':' in value: # <<<<<<<<<<<<<<
__pyx_t_3 = __pyx_t_5;
goto __pyx_L10_bool_binop_done;
}
- __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1423, __pyx_L1_error)
+ __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1424, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_5 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L10_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1424
+ /* "lxml/objectify.pyx":1425
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is None and u':' in value:
* prefix, value = value.split(u':', 1) # <<<<<<<<<<<<<<
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is not None:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1424, __pyx_L1_error)
+ __PYX_ERR(0, 1425, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_6);
#else
- __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
__Pyx_GOTREF(__pyx_t_1);
index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L12_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1424, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1425, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L13_unpacking_done;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1424, __pyx_L1_error)
+ __PYX_ERR(0, 1425, __pyx_L1_error)
__pyx_L13_unpacking_done:;
}
__pyx_v_prefix = __pyx_t_1;
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1425
+ /* "lxml/objectify.pyx":1426
* if schema_type is None and u':' in value:
* prefix, value = value.split(u':', 1)
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1425, __pyx_L1_error)
+ __PYX_ERR(0, 1426, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1425, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_value, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_schema_type, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1423
+ /* "lxml/objectify.pyx":1424
* if value is not None:
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is None and u':' in value: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1426
+ /* "lxml/objectify.pyx":1427
* prefix, value = value.split(u':', 1)
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1427
+ /* "lxml/objectify.pyx":1428
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is not None:
* return schema_type._type # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_schema_type->_type;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1426
+ /* "lxml/objectify.pyx":1427
* prefix, value = value.split(u':', 1)
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1421
+ /* "lxml/objectify.pyx":1422
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
*
* if value is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1430
+ /* "lxml/objectify.pyx":1431
*
* # otherwise determine class based on text content type
* el_class = _guessElementClass(c_node) # <<<<<<<<<<<<<<
* if el_class is not None:
* return el_class
*/
- __pyx_t_6 = __pyx_f_4lxml_9objectify__guessElementClass(__pyx_v_c_node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1430, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_9objectify__guessElementClass(__pyx_v_c_node); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1431, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_el_class = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1431
+ /* "lxml/objectify.pyx":1432
* # otherwise determine class based on text content type
* el_class = _guessElementClass(c_node)
* if el_class is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1432
+ /* "lxml/objectify.pyx":1433
* el_class = _guessElementClass(c_node)
* if el_class is not None:
* return el_class # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_el_class;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1431
+ /* "lxml/objectify.pyx":1432
* # otherwise determine class based on text content type
* el_class = _guessElementClass(c_node)
* if el_class is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1435
+ /* "lxml/objectify.pyx":1436
*
* # if element is a root node => default to tree node
* if c_node.parent is NULL or not tree._isElement(c_node.parent): # <<<<<<<<<<<<<<
__pyx_L17_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1436
+ /* "lxml/objectify.pyx":1437
* # if element is a root node => default to tree node
* if c_node.parent is NULL or not tree._isElement(c_node.parent):
* return lookup.tree_class # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_lookup->tree_class;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1435
+ /* "lxml/objectify.pyx":1436
*
* # if element is a root node => default to tree node
* if c_node.parent is NULL or not tree._isElement(c_node.parent): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1438
+ /* "lxml/objectify.pyx":1439
* return lookup.tree_class
*
* return lookup.empty_data_class # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_lookup->empty_data_class;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1394
+ /* "lxml/objectify.pyx":1395
* self.empty_data_class = empty_data_class
*
* cdef object _lookupElementClass(state, _Document doc, tree.xmlNode* c_node): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1444
+/* "lxml/objectify.pyx":1445
* # Type annotations
*
* cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype): # <<<<<<<<<<<<<<
int __pyx_t_9;
__Pyx_RefNannySetupContext("_check_type", 0);
- /* "lxml/objectify.pyx":1445
+ /* "lxml/objectify.pyx":1446
*
* cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
* if pytype is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1446
+ /* "lxml/objectify.pyx":1447
* cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
* if pytype is None:
* return None # <<<<<<<<<<<<<<
__pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1445
+ /* "lxml/objectify.pyx":1446
*
* cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
* if pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1447
+ /* "lxml/objectify.pyx":1448
* if pytype is None:
* return None
* value = textOf(c_node) # <<<<<<<<<<<<<<
* try:
* pytype.type_check(value)
*/
- __pyx_t_3 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1447, __pyx_L1_error)
+ __pyx_t_3 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1448, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_value = __pyx_t_3;
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1448
+ /* "lxml/objectify.pyx":1449
* return None
* value = textOf(c_node)
* try: # <<<<<<<<<<<<<<
__Pyx_XGOTREF(__pyx_t_6);
/*try:*/ {
- /* "lxml/objectify.pyx":1449
+ /* "lxml/objectify.pyx":1450
* value = textOf(c_node)
* try:
* pytype.type_check(value) # <<<<<<<<<<<<<<
}
__pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_value);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1449, __pyx_L4_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1450
+ /* "lxml/objectify.pyx":1451
* try:
* pytype.type_check(value)
* return pytype # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_pytype;
goto __pyx_L8_try_return;
- /* "lxml/objectify.pyx":1448
+ /* "lxml/objectify.pyx":1449
* return None
* value = textOf(c_node)
* try: # <<<<<<<<<<<<<<
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- /* "lxml/objectify.pyx":1451
+ /* "lxml/objectify.pyx":1452
* pytype.type_check(value)
* return pytype
* except IGNORABLE_ERRORS: # <<<<<<<<<<<<<<
goto __pyx_L6_except_error;
__pyx_L6_except_error:;
- /* "lxml/objectify.pyx":1448
+ /* "lxml/objectify.pyx":1449
* return None
* value = textOf(c_node)
* try: # <<<<<<<<<<<<<<
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
}
- /* "lxml/objectify.pyx":1454
+ /* "lxml/objectify.pyx":1455
* # could not be parsed as the specified type => ignore
* pass
* return None # <<<<<<<<<<<<<<
__pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None); __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1444
+ /* "lxml/objectify.pyx":1445
* # Type annotations
*
* cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1456
+/* "lxml/objectify.pyx":1457
* return None
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)((PyObject *)Py_False));
values[2] = ((PyObject *)((PyObject *)Py_False));
- /* "lxml/objectify.pyx":1457
+ /* "lxml/objectify.pyx":1458
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False,
* empty_pytype=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pyannotate") < 0)) __PYX_ERR(0, 1456, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pyannotate") < 0)) __PYX_ERR(0, 1457, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("pyannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1456, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("pyannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1457, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.pyannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_9objectify_20pyannotate(__pyx_self, __pyx_v_element_or_tree, __pyx_v_ignore_old, __pyx_v_ignore_xsi, __pyx_v_empty_pytype);
- /* "lxml/objectify.pyx":1456
+ /* "lxml/objectify.pyx":1457
* return None
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False, # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("pyannotate", 0);
- /* "lxml/objectify.pyx":1476
+ /* "lxml/objectify.pyx":1477
* """
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree) # <<<<<<<<<<<<<<
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
*/
- __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1476, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1477, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1477
+ /* "lxml/objectify.pyx":1478
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree)
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype) # <<<<<<<<<<<<<<
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1477, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1477, __pyx_L1_error)
- __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 0, 1, __pyx_t_2, __pyx_t_3, Py_None, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1477, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1478, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1478, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 0, 1, __pyx_t_2, __pyx_t_3, Py_None, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1456
+ /* "lxml/objectify.pyx":1457
* return None
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1479
+/* "lxml/objectify.pyx":1480
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)((PyObject *)Py_False));
values[2] = ((PyObject *)((PyObject *)Py_False));
- /* "lxml/objectify.pyx":1480
+ /* "lxml/objectify.pyx":1481
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,
* empty_type=None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "xsiannotate") < 0)) __PYX_ERR(0, 1479, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "xsiannotate") < 0)) __PYX_ERR(0, 1480, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("xsiannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1479, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("xsiannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1480, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.xsiannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_9objectify_22xsiannotate(__pyx_self, __pyx_v_element_or_tree, __pyx_v_ignore_old, __pyx_v_ignore_pytype, __pyx_v_empty_type);
- /* "lxml/objectify.pyx":1479
+ /* "lxml/objectify.pyx":1480
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False, # <<<<<<<<<<<<<<
int __pyx_t_3;
__Pyx_RefNannySetupContext("xsiannotate", 0);
- /* "lxml/objectify.pyx":1504
+ /* "lxml/objectify.pyx":1505
* """
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree) # <<<<<<<<<<<<<<
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
*/
- __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1504, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1505
+ /* "lxml/objectify.pyx":1506
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree)
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None) # <<<<<<<<<<<<<<
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1505, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1505, __pyx_L1_error)
- __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 1, 0, __pyx_t_2, __pyx_t_3, __pyx_v_empty_type, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1505, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1506, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1506, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 1, 0, __pyx_t_2, __pyx_t_3, __pyx_v_empty_type, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1479
+ /* "lxml/objectify.pyx":1480
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1507
+/* "lxml/objectify.pyx":1508
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False, # <<<<<<<<<<<<<<
values[1] = ((PyObject *)((PyObject *)Py_True));
values[2] = ((PyObject *)((PyObject *)Py_False));
- /* "lxml/objectify.pyx":1508
+ /* "lxml/objectify.pyx":1509
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,
* empty_pytype=None, empty_type=None, annotate_xsi=0, # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "annotate") < 0)) __PYX_ERR(0, 1507, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "annotate") < 0)) __PYX_ERR(0, 1508, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("annotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1507, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("annotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1508, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.annotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_9objectify_24annotate(__pyx_self, __pyx_v_element_or_tree, __pyx_v_ignore_old, __pyx_v_ignore_xsi, __pyx_v_empty_pytype, __pyx_v_empty_type, __pyx_v_annotate_xsi, __pyx_v_annotate_pytype);
- /* "lxml/objectify.pyx":1507
+ /* "lxml/objectify.pyx":1508
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False, # <<<<<<<<<<<<<<
int __pyx_t_5;
__Pyx_RefNannySetupContext("annotate", 0);
- /* "lxml/objectify.pyx":1541
+ /* "lxml/objectify.pyx":1542
* """
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree) # <<<<<<<<<<<<<<
* _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi,
* ignore_old, empty_type, empty_pytype)
*/
- __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1541, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1542
+ /* "lxml/objectify.pyx":1543
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree)
* _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi, # <<<<<<<<<<<<<<
* ignore_old, empty_type, empty_pytype)
*
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1542, __pyx_L1_error)
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1542, __pyx_L1_error)
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1542, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1543, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1543, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1543, __pyx_L1_error)
- /* "lxml/objectify.pyx":1543
+ /* "lxml/objectify.pyx":1544
* element = cetree.rootNodeOrRaise(element_or_tree)
* _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi,
* ignore_old, empty_type, empty_pytype) # <<<<<<<<<<<<<<
*
*
*/
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1543, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1544, __pyx_L1_error)
- /* "lxml/objectify.pyx":1542
+ /* "lxml/objectify.pyx":1543
* cdef _Element element
* element = cetree.rootNodeOrRaise(element_or_tree)
* _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi, # <<<<<<<<<<<<<<
* ignore_old, empty_type, empty_pytype)
*
*/
- __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_v_empty_type, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_v_empty_type, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1543, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1507
+ /* "lxml/objectify.pyx":1508
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1546
+/* "lxml/objectify.pyx":1547
*
*
* cdef _annotate(_Element element, bint annotate_xsi, bint annotate_pytype, # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_empty_type_name);
__Pyx_INCREF(__pyx_v_empty_pytype_name);
- /* "lxml/objectify.pyx":1553
+ /* "lxml/objectify.pyx":1554
* cdef PyType empty_pytype, StrType, NoneType
*
* if not annotate_xsi and not annotate_pytype: # <<<<<<<<<<<<<<
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1554
+ /* "lxml/objectify.pyx":1555
*
* if not annotate_xsi and not annotate_pytype:
* return # <<<<<<<<<<<<<<
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "lxml/objectify.pyx":1553
+ /* "lxml/objectify.pyx":1554
* cdef PyType empty_pytype, StrType, NoneType
*
* if not annotate_xsi and not annotate_pytype: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1556
+ /* "lxml/objectify.pyx":1557
* return
*
* if empty_type_name is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1557
+ /* "lxml/objectify.pyx":1558
*
* if empty_type_name is not None:
* if isinstance(empty_type_name, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1558
+ /* "lxml/objectify.pyx":1559
* if empty_type_name is not None:
* if isinstance(empty_type_name, bytes):
* empty_type_name = (<bytes>empty_type_name).decode("ascii") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_empty_type_name == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(0, 1558, __pyx_L1_error)
+ __PYX_ERR(0, 1559, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_decode_bytes(((PyObject*)__pyx_v_empty_type_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_decode_bytes(((PyObject*)__pyx_v_empty_type_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_empty_type_name, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1557
+ /* "lxml/objectify.pyx":1558
*
* if empty_type_name is not None:
* if isinstance(empty_type_name, bytes): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1559
+ /* "lxml/objectify.pyx":1560
* if isinstance(empty_type_name, bytes):
* empty_type_name = (<bytes>empty_type_name).decode("ascii")
* empty_pytype = <PyType>_SCHEMA_TYPE_DICT.get(empty_type_name) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1559, __pyx_L1_error)
+ __PYX_ERR(0, 1560, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_empty_type_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1559, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_empty_type_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_empty_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1556
+ /* "lxml/objectify.pyx":1557
* return
*
* if empty_type_name is not None: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1560
+ /* "lxml/objectify.pyx":1561
* empty_type_name = (<bytes>empty_type_name).decode("ascii")
* empty_pytype = <PyType>_SCHEMA_TYPE_DICT.get(empty_type_name)
* elif empty_pytype_name is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1561
+ /* "lxml/objectify.pyx":1562
* empty_pytype = <PyType>_SCHEMA_TYPE_DICT.get(empty_type_name)
* elif empty_pytype_name is not None:
* if isinstance(empty_pytype_name, bytes): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1562
+ /* "lxml/objectify.pyx":1563
* elif empty_pytype_name is not None:
* if isinstance(empty_pytype_name, bytes):
* empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii") # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_empty_pytype_name == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "decode");
- __PYX_ERR(0, 1562, __pyx_L1_error)
+ __PYX_ERR(0, 1563, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_empty_pytype_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1562, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_decode_bytes(((PyObject*)__pyx_v_empty_pytype_name), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_empty_pytype_name, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1561
+ /* "lxml/objectify.pyx":1562
* empty_pytype = <PyType>_SCHEMA_TYPE_DICT.get(empty_type_name)
* elif empty_pytype_name is not None:
* if isinstance(empty_pytype_name, bytes): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1563
+ /* "lxml/objectify.pyx":1564
* if isinstance(empty_pytype_name, bytes):
* empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii")
* empty_pytype = <PyType>_PYTYPE_DICT.get(empty_pytype_name) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1563, __pyx_L1_error)
+ __PYX_ERR(0, 1564, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_empty_pytype_name, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1563, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_empty_pytype_name, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_3);
__pyx_v_empty_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1560
+ /* "lxml/objectify.pyx":1561
* empty_type_name = (<bytes>empty_type_name).decode("ascii")
* empty_pytype = <PyType>_SCHEMA_TYPE_DICT.get(empty_type_name)
* elif empty_pytype_name is not None: # <<<<<<<<<<<<<<
goto __pyx_L6;
}
- /* "lxml/objectify.pyx":1565
+ /* "lxml/objectify.pyx":1566
* empty_pytype = <PyType>_PYTYPE_DICT.get(empty_pytype_name)
* else:
* empty_pytype = None # <<<<<<<<<<<<<<
}
__pyx_L6:;
- /* "lxml/objectify.pyx":1567
+ /* "lxml/objectify.pyx":1568
* empty_pytype = None
*
* StrType = <PyType>_PYTYPE_DICT.get(u'str') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1567, __pyx_L1_error)
+ __PYX_ERR(0, 1568, __pyx_L1_error)
}
- __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_n_u_str, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1567, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_n_u_str, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1568, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_StrType = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1568
+ /* "lxml/objectify.pyx":1569
*
* StrType = <PyType>_PYTYPE_DICT.get(u'str')
* NoneType = <PyType>_PYTYPE_DICT.get(u'NoneType') # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1568, __pyx_L1_error)
+ __PYX_ERR(0, 1569, __pyx_L1_error)
}
- __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_n_u_NoneType, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1568, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_n_u_NoneType, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1569, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__Pyx_INCREF(__pyx_t_3);
__pyx_v_NoneType = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1570
+ /* "lxml/objectify.pyx":1571
* NoneType = <PyType>_PYTYPE_DICT.get(u'NoneType')
*
* doc = element._doc # <<<<<<<<<<<<<<
__pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1571
+ /* "lxml/objectify.pyx":1572
*
* doc = element._doc
* c_node = element._c_node # <<<<<<<<<<<<<<
__pyx_t_5 = __pyx_v_element->_c_node;
__pyx_v_c_node = __pyx_t_5;
- /* "lxml/objectify.pyx":1572
+ /* "lxml/objectify.pyx":1573
* doc = element._doc
* c_node = element._c_node
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1) # <<<<<<<<<<<<<<
*/
BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node, __pyx_v_c_node, 1);
- /* "lxml/objectify.pyx":1573
+ /* "lxml/objectify.pyx":1574
* c_node = element._c_node
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1)
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
__pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1574
+ /* "lxml/objectify.pyx":1575
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1)
* if c_node.type == tree.XML_ELEMENT_NODE:
* _annotate_element(c_node, doc, annotate_xsi, annotate_pytype, # <<<<<<<<<<<<<<
* ignore_xsi, ignore_pytype,
* empty_type_name, empty_pytype, StrType, NoneType)
*/
- __pyx_t_6 = __pyx_f_4lxml_9objectify__annotate_element(__pyx_v_c_node, __pyx_v_doc, __pyx_v_annotate_xsi, __pyx_v_annotate_pytype, __pyx_v_ignore_xsi, __pyx_v_ignore_pytype, __pyx_v_empty_type_name, __pyx_v_empty_pytype, __pyx_v_StrType, __pyx_v_NoneType); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1574, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_9objectify__annotate_element(__pyx_v_c_node, __pyx_v_doc, __pyx_v_annotate_xsi, __pyx_v_annotate_pytype, __pyx_v_ignore_xsi, __pyx_v_ignore_pytype, __pyx_v_empty_type_name, __pyx_v_empty_pytype, __pyx_v_StrType, __pyx_v_NoneType); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1575, __pyx_L1_error)
- /* "lxml/objectify.pyx":1573
+ /* "lxml/objectify.pyx":1574
* c_node = element._c_node
* tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1)
* if c_node.type == tree.XML_ELEMENT_NODE: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1577
+ /* "lxml/objectify.pyx":1578
* ignore_xsi, ignore_pytype,
* empty_type_name, empty_pytype, StrType, NoneType)
* tree.END_FOR_EACH_ELEMENT_FROM(c_node) # <<<<<<<<<<<<<<
*/
END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
- /* "lxml/objectify.pyx":1546
+ /* "lxml/objectify.pyx":1547
*
*
* cdef _annotate(_Element element, bint annotate_xsi, bint annotate_pytype, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1579
+/* "lxml/objectify.pyx":1580
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
*
* cdef int _annotate_element(tree.xmlNode* c_node, _Document doc, # <<<<<<<<<<<<<<
PyObject *(*__pyx_t_8)(PyObject *);
__Pyx_RefNannySetupContext("_annotate_element", 0);
- /* "lxml/objectify.pyx":1585
+ /* "lxml/objectify.pyx":1586
* PyType StrType, PyType NoneType) except -1:
* cdef tree.xmlNs* c_ns
* cdef PyType pytype = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None);
- /* "lxml/objectify.pyx":1586
+ /* "lxml/objectify.pyx":1587
* cdef tree.xmlNs* c_ns
* cdef PyType pytype = None
* typename = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_typename = Py_None;
- /* "lxml/objectify.pyx":1587
+ /* "lxml/objectify.pyx":1588
* cdef PyType pytype = None
* typename = None
* istree = 0 # <<<<<<<<<<<<<<
*/
__pyx_v_istree = 0;
- /* "lxml/objectify.pyx":1590
+ /* "lxml/objectify.pyx":1591
*
* # if element is defined as xsi:nil, represent it as None
* if cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil") == "true":
* pytype = NoneType
*/
- __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"nil")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1590, __pyx_L1_error)
+ __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"nil")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_true, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1591, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_true, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1592, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1592
+ /* "lxml/objectify.pyx":1593
* if cetree.attributeValueFromNsName(
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil") == "true":
* pytype = NoneType # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_NoneType));
__Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_NoneType);
- /* "lxml/objectify.pyx":1590
+ /* "lxml/objectify.pyx":1591
*
* # if element is defined as xsi:nil, represent it as None
* if cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1594
+ /* "lxml/objectify.pyx":1595
* pytype = NoneType
*
* if pytype is None and not ignore_xsi: # <<<<<<<<<<<<<<
__pyx_L5_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1596
+ /* "lxml/objectify.pyx":1597
* if pytype is None and not ignore_xsi:
* # check that old xsi type value is valid
* typename = cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
* if typename is not None:
*/
- __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"type")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1596, __pyx_L1_error)
+ __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"type")))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1597, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1598
+ /* "lxml/objectify.pyx":1599
* typename = cetree.attributeValueFromNsName(
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
* if typename is not None: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1599
+ /* "lxml/objectify.pyx":1600
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
* if typename is not None:
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1599, __pyx_L1_error)
+ __PYX_ERR(0, 1600, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_typename, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1599, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_typename, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_5));
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1600
+ /* "lxml/objectify.pyx":1601
* if typename is not None:
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is None and u':' in typename: # <<<<<<<<<<<<<<
__pyx_t_4 = __pyx_t_3;
goto __pyx_L9_bool_binop_done;
}
- __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1600, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1601, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_4 = __pyx_t_2;
__pyx_L9_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1601
+ /* "lxml/objectify.pyx":1602
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is None and u':' in typename:
* prefix, typename = typename.split(u':', 1) # <<<<<<<<<<<<<<
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is not None and pytype is not StrType:
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1601, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1601, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1601, __pyx_L1_error)
+ __PYX_ERR(0, 1602, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
#else
- __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1601, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1601, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1601, __pyx_L1_error)
+ __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
__Pyx_GOTREF(__pyx_t_5);
index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L11_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1601, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1602, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L12_unpacking_done;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1601, __pyx_L1_error)
+ __PYX_ERR(0, 1602, __pyx_L1_error)
__pyx_L12_unpacking_done:;
}
__pyx_v_prefix = __pyx_t_5;
__Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1602
+ /* "lxml/objectify.pyx":1603
* if pytype is None and u':' in typename:
* prefix, typename = typename.split(u':', 1)
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1602, __pyx_L1_error)
+ __PYX_ERR(0, 1603, __pyx_L1_error)
}
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_typename, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1602, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_typename, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __pyx_t_1;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1600
+ /* "lxml/objectify.pyx":1601
* if typename is not None:
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is None and u':' in typename: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1603
+ /* "lxml/objectify.pyx":1604
* prefix, typename = typename.split(u':', 1)
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is not None and pytype is not StrType: # <<<<<<<<<<<<<<
__pyx_L14_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1607
+ /* "lxml/objectify.pyx":1608
* # anyway, so just accept it if given as type
* # information
* pytype = _check_type(c_node, pytype) # <<<<<<<<<<<<<<
* if pytype is None:
* typename = None
*/
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1607, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1608, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1608
+ /* "lxml/objectify.pyx":1609
* # information
* pytype = _check_type(c_node, pytype)
* if pytype is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_4 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1609
+ /* "lxml/objectify.pyx":1610
* pytype = _check_type(c_node, pytype)
* if pytype is None:
* typename = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_typename, Py_None);
- /* "lxml/objectify.pyx":1608
+ /* "lxml/objectify.pyx":1609
* # information
* pytype = _check_type(c_node, pytype)
* if pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1603
+ /* "lxml/objectify.pyx":1604
* prefix, typename = typename.split(u':', 1)
* pytype = <PyType>_SCHEMA_TYPE_DICT.get(typename)
* if pytype is not None and pytype is not StrType: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1598
+ /* "lxml/objectify.pyx":1599
* typename = cetree.attributeValueFromNsName(
* c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
* if typename is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1594
+ /* "lxml/objectify.pyx":1595
* pytype = NoneType
*
* if pytype is None and not ignore_xsi: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1611
+ /* "lxml/objectify.pyx":1612
* typename = None
*
* if pytype is None and not ignore_pytype: # <<<<<<<<<<<<<<
__pyx_L18_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1613
+ /* "lxml/objectify.pyx":1614
* if pytype is None and not ignore_pytype:
* # check that old pytype value is valid
* old_pytypename = cetree.attributeValueFromNsName( # <<<<<<<<<<<<<<
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if old_pytypename is not None:
*/
- __pyx_t_6 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1613, __pyx_L1_error)
+ __pyx_t_6 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_old_pytypename = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1615
+ /* "lxml/objectify.pyx":1616
* old_pytypename = cetree.attributeValueFromNsName(
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if old_pytypename is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1616
+ /* "lxml/objectify.pyx":1617
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if old_pytypename is not None:
* if old_pytypename == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
* if not cetree.hasChild(c_node):
* # only case where we should keep it,
*/
- __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_old_pytypename, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1616, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_old_pytypename, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1617, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1617
+ /* "lxml/objectify.pyx":1618
* if old_pytypename is not None:
* if old_pytypename == TREE_PYTYPE_NAME:
* if not cetree.hasChild(c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1620
+ /* "lxml/objectify.pyx":1621
* # only case where we should keep it,
* # everything else is clear enough
* pytype = TREE_PYTYPE # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE));
__Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_4lxml_9objectify_TREE_PYTYPE);
- /* "lxml/objectify.pyx":1617
+ /* "lxml/objectify.pyx":1618
* if old_pytypename is not None:
* if old_pytypename == TREE_PYTYPE_NAME:
* if not cetree.hasChild(c_node): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1616
+ /* "lxml/objectify.pyx":1617
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if old_pytypename is not None:
* if old_pytypename == TREE_PYTYPE_NAME: # <<<<<<<<<<<<<<
goto __pyx_L21;
}
- /* "lxml/objectify.pyx":1622
+ /* "lxml/objectify.pyx":1623
* pytype = TREE_PYTYPE
* else:
* if old_pytypename == 'none': # <<<<<<<<<<<<<<
* old_pytypename = "NoneType"
*/
/*else*/ {
- __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_old_pytypename, __pyx_n_s_none, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1622, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_old_pytypename, __pyx_n_s_none, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1623, __pyx_L1_error)
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1624
+ /* "lxml/objectify.pyx":1625
* if old_pytypename == 'none':
* # transition from lxml 1.x
* old_pytypename = "NoneType" # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_s_NoneType);
__Pyx_DECREF_SET(__pyx_v_old_pytypename, __pyx_n_s_NoneType);
- /* "lxml/objectify.pyx":1622
+ /* "lxml/objectify.pyx":1623
* pytype = TREE_PYTYPE
* else:
* if old_pytypename == 'none': # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1625
+ /* "lxml/objectify.pyx":1626
* # transition from lxml 1.x
* old_pytypename = "NoneType"
* pytype = <PyType>_PYTYPE_DICT.get(old_pytypename) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1625, __pyx_L1_error)
+ __PYX_ERR(0, 1626, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_old_pytypename, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1625, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v_old_pytypename, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __pyx_t_6;
__Pyx_INCREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1626
+ /* "lxml/objectify.pyx":1627
* old_pytypename = "NoneType"
* pytype = <PyType>_PYTYPE_DICT.get(old_pytypename)
* if pytype is not None and pytype is not StrType: # <<<<<<<<<<<<<<
__pyx_L25_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1630
+ /* "lxml/objectify.pyx":1631
* # default anyway, so just accept it if given as
* # type information
* pytype = _check_type(c_node, pytype) # <<<<<<<<<<<<<<
*
* if pytype is None:
*/
- __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1630, __pyx_L1_error)
+ __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1631, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1626
+ /* "lxml/objectify.pyx":1627
* old_pytypename = "NoneType"
* pytype = <PyType>_PYTYPE_DICT.get(old_pytypename)
* if pytype is not None and pytype is not StrType: # <<<<<<<<<<<<<<
}
__pyx_L21:;
- /* "lxml/objectify.pyx":1615
+ /* "lxml/objectify.pyx":1616
* old_pytypename = cetree.attributeValueFromNsName(
* c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
* if old_pytypename is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1611
+ /* "lxml/objectify.pyx":1612
* typename = None
*
* if pytype is None and not ignore_pytype: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1632
+ /* "lxml/objectify.pyx":1633
* pytype = _check_type(c_node, pytype)
*
* if pytype is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1634
+ /* "lxml/objectify.pyx":1635
* if pytype is None:
* # try to guess type
* if not cetree.hasChild(c_node): # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1636
+ /* "lxml/objectify.pyx":1637
* if not cetree.hasChild(c_node):
* # element has no children => data class
* pytype = _guessPyType(textOf(c_node), StrType) # <<<<<<<<<<<<<<
* else:
* istree = 1
*/
- __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1636, __pyx_L1_error)
+ __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__guessPyType(__pyx_t_1, __pyx_v_StrType)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1636, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__guessPyType(__pyx_t_1, __pyx_v_StrType)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1634
+ /* "lxml/objectify.pyx":1635
* if pytype is None:
* # try to guess type
* if not cetree.hasChild(c_node): # <<<<<<<<<<<<<<
goto __pyx_L28;
}
- /* "lxml/objectify.pyx":1638
+ /* "lxml/objectify.pyx":1639
* pytype = _guessPyType(textOf(c_node), StrType)
* else:
* istree = 1 # <<<<<<<<<<<<<<
}
__pyx_L28:;
- /* "lxml/objectify.pyx":1632
+ /* "lxml/objectify.pyx":1633
* pytype = _check_type(c_node, pytype)
*
* if pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1640
+ /* "lxml/objectify.pyx":1641
* istree = 1
*
* if pytype is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1642
+ /* "lxml/objectify.pyx":1643
* if pytype is None:
* # use default type for empty elements
* if cetree.hasText(c_node): # <<<<<<<<<<<<<<
__pyx_t_3 = (hasText(__pyx_v_c_node) != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1643
+ /* "lxml/objectify.pyx":1644
* # use default type for empty elements
* if cetree.hasText(c_node):
* pytype = StrType # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_StrType));
__Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_StrType);
- /* "lxml/objectify.pyx":1642
+ /* "lxml/objectify.pyx":1643
* if pytype is None:
* # use default type for empty elements
* if cetree.hasText(c_node): # <<<<<<<<<<<<<<
goto __pyx_L30;
}
- /* "lxml/objectify.pyx":1645
+ /* "lxml/objectify.pyx":1646
* pytype = StrType
* else:
* pytype = empty_pytype # <<<<<<<<<<<<<<
__Pyx_INCREF(((PyObject *)__pyx_v_empty_pytype));
__Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_empty_pytype);
- /* "lxml/objectify.pyx":1646
+ /* "lxml/objectify.pyx":1647
* else:
* pytype = empty_pytype
* if typename is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1647
+ /* "lxml/objectify.pyx":1648
* pytype = empty_pytype
* if typename is None:
* typename = empty_type_name # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_empty_type_name);
__Pyx_DECREF_SET(__pyx_v_typename, __pyx_v_empty_type_name);
- /* "lxml/objectify.pyx":1646
+ /* "lxml/objectify.pyx":1647
* else:
* pytype = empty_pytype
* if typename is None: # <<<<<<<<<<<<<<
}
__pyx_L30:;
- /* "lxml/objectify.pyx":1640
+ /* "lxml/objectify.pyx":1641
* istree = 1
*
* if pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1649
+ /* "lxml/objectify.pyx":1650
* typename = empty_type_name
*
* if pytype is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1650
+ /* "lxml/objectify.pyx":1651
*
* if pytype is not None:
* if typename is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1651
+ /* "lxml/objectify.pyx":1652
* if pytype is not None:
* if typename is None:
* if not istree: # <<<<<<<<<<<<<<
__pyx_t_2 = ((!(__pyx_v_istree != 0)) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1652
+ /* "lxml/objectify.pyx":1653
* if typename is None:
* if not istree:
* if pytype._schema_types: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_pytype->_schema_types != Py_None)&&(PyList_GET_SIZE(__pyx_v_pytype->_schema_types) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1655
+ /* "lxml/objectify.pyx":1656
* # pytype->xsi:type is a 1:n mapping
* # simply take the first
* typename = pytype._schema_types[0] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_pytype->_schema_types == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 1655, __pyx_L1_error)
+ __PYX_ERR(0, 1656, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_pytype->_schema_types, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1655, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_pytype->_schema_types, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1652
+ /* "lxml/objectify.pyx":1653
* if typename is None:
* if not istree:
* if pytype._schema_types: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1651
+ /* "lxml/objectify.pyx":1652
* if pytype is not None:
* if typename is None:
* if not istree: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1650
+ /* "lxml/objectify.pyx":1651
*
* if pytype is not None:
* if typename is None: # <<<<<<<<<<<<<<
goto __pyx_L33;
}
- /* "lxml/objectify.pyx":1656
+ /* "lxml/objectify.pyx":1657
* # simply take the first
* typename = pytype._schema_types[0]
* elif typename not in pytype._schema_types: # <<<<<<<<<<<<<<
* typename = pytype._schema_types[0]
*
*/
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_typename, __pyx_v_pytype->_schema_types, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1656, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_typename, __pyx_v_pytype->_schema_types, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1657, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1657
+ /* "lxml/objectify.pyx":1658
* typename = pytype._schema_types[0]
* elif typename not in pytype._schema_types:
* typename = pytype._schema_types[0] # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_pytype->_schema_types == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
- __PYX_ERR(0, 1657, __pyx_L1_error)
+ __PYX_ERR(0, 1658, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_pytype->_schema_types, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1657, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_pytype->_schema_types, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1658, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1656
+ /* "lxml/objectify.pyx":1657
* # simply take the first
* typename = pytype._schema_types[0]
* elif typename not in pytype._schema_types: # <<<<<<<<<<<<<<
}
__pyx_L33:;
- /* "lxml/objectify.pyx":1649
+ /* "lxml/objectify.pyx":1650
* typename = empty_type_name
*
* if pytype is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1659
+ /* "lxml/objectify.pyx":1660
* typename = pytype._schema_types[0]
*
* if annotate_xsi: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_v_annotate_xsi != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1660
+ /* "lxml/objectify.pyx":1661
*
* if annotate_xsi:
* if typename is None or istree: # <<<<<<<<<<<<<<
__pyx_L38_bool_binop_done:;
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1661
+ /* "lxml/objectify.pyx":1662
* if annotate_xsi:
* if typename is None or istree:
* cetree.delAttributeFromNsName( # <<<<<<<<<<<<<<
*/
(void)(delAttributeFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"type")))));
- /* "lxml/objectify.pyx":1660
+ /* "lxml/objectify.pyx":1661
*
* if annotate_xsi:
* if typename is None or istree: # <<<<<<<<<<<<<<
goto __pyx_L37;
}
- /* "lxml/objectify.pyx":1665
+ /* "lxml/objectify.pyx":1666
* else:
* # update or create attribute
* typename_utf8 = cetree.utf8(typename) # <<<<<<<<<<<<<<
* doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
*/
/*else*/ {
- __pyx_t_6 = utf8(__pyx_v_typename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1665, __pyx_L1_error)
+ __pyx_t_6 = utf8(__pyx_v_typename); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1666, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_typename_utf8 = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1666
+ /* "lxml/objectify.pyx":1667
* # update or create attribute
* typename_utf8 = cetree.utf8(typename)
* c_ns = cetree.findOrBuildNodeNsPrefix( # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_NS, ((unsigned char *)((unsigned char *)((char const *)"xsd"))));
- /* "lxml/objectify.pyx":1668
+ /* "lxml/objectify.pyx":1669
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
* if c_ns is not NULL: # <<<<<<<<<<<<<<
__pyx_t_3 = ((__pyx_v_c_ns != NULL) != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1669
+ /* "lxml/objectify.pyx":1670
* doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
* if c_ns is not NULL:
* if b':' in typename_utf8: # <<<<<<<<<<<<<<
* prefix, name = typename_utf8.split(b':', 1)
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
*/
- __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__17, __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1669, __pyx_L1_error)
+ __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_b__17, __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1670, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1670
+ /* "lxml/objectify.pyx":1671
* if c_ns is not NULL:
* if b':' in typename_utf8:
* prefix, name = typename_utf8.split(b':', 1) # <<<<<<<<<<<<<<
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name
*/
- __pyx_t_6 = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyBytes_Type_split, __pyx_v_typename_utf8, __pyx_kp_b__17, __pyx_int_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1670, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyBytes_Type_split, __pyx_v_typename_utf8, __pyx_kp_b__17, __pyx_int_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1671, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
PyObject* sequence = __pyx_t_6;
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1670, __pyx_L1_error)
+ __PYX_ERR(0, 1671, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_5);
#else
- __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1670, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1671, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1670, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1671, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1670, __pyx_L1_error)
+ __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1671, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
__Pyx_GOTREF(__pyx_t_1);
index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L42_unpacking_failed;
__Pyx_GOTREF(__pyx_t_5);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1670, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1671, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L43_unpacking_done;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1670, __pyx_L1_error)
+ __PYX_ERR(0, 1671, __pyx_L1_error)
__pyx_L43_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_1);
__pyx_v_name = __pyx_t_5;
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1671
+ /* "lxml/objectify.pyx":1672
* if b':' in typename_utf8:
* prefix, name = typename_utf8.split(b':', 1)
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0': # <<<<<<<<<<<<<<
__pyx_L45_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1672
+ /* "lxml/objectify.pyx":1673
* prefix, name = typename_utf8.split(b':', 1)
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_name);
__Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_v_name);
- /* "lxml/objectify.pyx":1671
+ /* "lxml/objectify.pyx":1672
* if b':' in typename_utf8:
* prefix, name = typename_utf8.split(b':', 1)
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0': # <<<<<<<<<<<<<<
goto __pyx_L44;
}
- /* "lxml/objectify.pyx":1673
+ /* "lxml/objectify.pyx":1674
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name
* elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0: # <<<<<<<<<<<<<<
__pyx_t_4 = ((xmlStrcmp((const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix), __pyx_v_c_ns->prefix) != 0) != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1674
+ /* "lxml/objectify.pyx":1675
* typename_utf8 = name
* elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name # <<<<<<<<<<<<<<
* elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8
*/
- __pyx_t_6 = __Pyx_PyBytes_FromCString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyBytes_FromCString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1675, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1675, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1674, __pyx_L1_error)
+ __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1675, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1673
+ /* "lxml/objectify.pyx":1674
* if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
* typename_utf8 = name
* elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0: # <<<<<<<<<<<<<<
}
__pyx_L44:;
- /* "lxml/objectify.pyx":1669
+ /* "lxml/objectify.pyx":1670
* doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
* if c_ns is not NULL:
* if b':' in typename_utf8: # <<<<<<<<<<<<<<
goto __pyx_L41;
}
- /* "lxml/objectify.pyx":1675
+ /* "lxml/objectify.pyx":1676
* elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
* elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0': # <<<<<<<<<<<<<<
__pyx_L47_bool_binop_done:;
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1676
+ /* "lxml/objectify.pyx":1677
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
* elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8 # <<<<<<<<<<<<<<
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
*/
- __pyx_t_6 = __Pyx_PyBytes_FromCString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1676, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyBytes_FromCString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1676, __pyx_L1_error)
+ __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_v_typename_utf8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1676, __pyx_L1_error)
+ __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_v_typename_utf8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1675
+ /* "lxml/objectify.pyx":1676
* elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
* elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0': # <<<<<<<<<<<<<<
}
__pyx_L41:;
- /* "lxml/objectify.pyx":1668
+ /* "lxml/objectify.pyx":1669
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
* if c_ns is not NULL: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1677
+ /* "lxml/objectify.pyx":1678
* elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':
* typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8
* c_ns = cetree.findOrBuildNodeNsPrefix( # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"xsi"))));
- /* "lxml/objectify.pyx":1679
+ /* "lxml/objectify.pyx":1680
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
* tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"type", _xcstr(typename_utf8)) # <<<<<<<<<<<<<<
}
__pyx_L37:;
- /* "lxml/objectify.pyx":1659
+ /* "lxml/objectify.pyx":1660
* typename = pytype._schema_types[0]
*
* if annotate_xsi: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1681
+ /* "lxml/objectify.pyx":1682
* tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"type", _xcstr(typename_utf8))
*
* if annotate_pytype: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_v_annotate_pytype != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1682
+ /* "lxml/objectify.pyx":1683
*
* if annotate_pytype:
* if pytype is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_4 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1684
+ /* "lxml/objectify.pyx":1685
* if pytype is None:
* # delete attribute if it exists
* cetree.delAttributeFromNsName( # <<<<<<<<<<<<<<
*/
(void)(delAttributeFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME));
- /* "lxml/objectify.pyx":1682
+ /* "lxml/objectify.pyx":1683
*
* if annotate_pytype:
* if pytype is None: # <<<<<<<<<<<<<<
goto __pyx_L50;
}
- /* "lxml/objectify.pyx":1688
+ /* "lxml/objectify.pyx":1689
* else:
* # update or create attribute
* c_ns = cetree.findOrBuildNodeNsPrefix( # <<<<<<<<<<<<<<
*/
/*else*/ {
- /* "lxml/objectify.pyx":1689
+ /* "lxml/objectify.pyx":1690
* # update or create attribute
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _PYTYPE_NAMESPACE, <unsigned char*>'py') # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, ((unsigned char *)((unsigned char *)((char const *)"py"))));
- /* "lxml/objectify.pyx":1690
+ /* "lxml/objectify.pyx":1691
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _PYTYPE_NAMESPACE, <unsigned char*>'py')
* pytype_name = cetree.utf8(pytype.name) # <<<<<<<<<<<<<<
*/
__pyx_t_6 = __pyx_v_pytype->name;
__Pyx_INCREF(__pyx_t_6);
- __pyx_t_5 = utf8(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1690, __pyx_L1_error)
+ __pyx_t_5 = utf8(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1691, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_pytype_name = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1691
+ /* "lxml/objectify.pyx":1692
* doc, c_node, _PYTYPE_NAMESPACE, <unsigned char*>'py')
* pytype_name = cetree.utf8(pytype.name)
* tree.xmlSetNsProp(c_node, c_ns, _PYTYPE_ATTRIBUTE_NAME, # <<<<<<<<<<<<<<
*/
(void)(xmlSetNsProp(__pyx_v_c_node, __pyx_v_c_ns, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_pytype_name)));
- /* "lxml/objectify.pyx":1693
+ /* "lxml/objectify.pyx":1694
* tree.xmlSetNsProp(c_node, c_ns, _PYTYPE_ATTRIBUTE_NAME,
* _xcstr(pytype_name))
* if pytype is NoneType: # <<<<<<<<<<<<<<
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
- /* "lxml/objectify.pyx":1694
+ /* "lxml/objectify.pyx":1695
* _xcstr(pytype_name))
* if pytype is NoneType:
* c_ns = cetree.findOrBuildNodeNsPrefix( # <<<<<<<<<<<<<<
*/
__pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)((char const *)"xsi"))));
- /* "lxml/objectify.pyx":1696
+ /* "lxml/objectify.pyx":1697
* c_ns = cetree.findOrBuildNodeNsPrefix(
* doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
* tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"nil", <unsigned char*>"true") # <<<<<<<<<<<<<<
*/
(void)(xmlSetNsProp(__pyx_v_c_node, __pyx_v_c_ns, ((unsigned char *)((unsigned char *)((char const *)"nil"))), ((unsigned char *)((unsigned char *)((char const *)"true")))));
- /* "lxml/objectify.pyx":1693
+ /* "lxml/objectify.pyx":1694
* tree.xmlSetNsProp(c_node, c_ns, _PYTYPE_ATTRIBUTE_NAME,
* _xcstr(pytype_name))
* if pytype is NoneType: # <<<<<<<<<<<<<<
}
__pyx_L50:;
- /* "lxml/objectify.pyx":1681
+ /* "lxml/objectify.pyx":1682
* tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"type", _xcstr(typename_utf8))
*
* if annotate_pytype: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1698
+ /* "lxml/objectify.pyx":1699
* tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"nil", <unsigned char*>"true")
*
* return 0 # <<<<<<<<<<<<<<
__pyx_r = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1579
+ /* "lxml/objectify.pyx":1580
* tree.END_FOR_EACH_ELEMENT_FROM(c_node)
*
* cdef int _annotate_element(tree.xmlNode* c_node, _Document doc, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1703
+/* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deannotate") < 0)) __PYX_ERR(0, 1703, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deannotate") < 0)) __PYX_ERR(0, 1704, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
goto __pyx_L5_argtuple_error;
}
__pyx_v_element_or_tree = values[0];
if (values[1]) {
- __pyx_v_pytype = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pytype == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1703, __pyx_L3_error)
+ __pyx_v_pytype = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pytype == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1704, __pyx_L3_error)
} else {
__pyx_v_pytype = ((int)((int)1));
}
if (values[2]) {
- __pyx_v_xsi = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_xsi == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1703, __pyx_L3_error)
+ __pyx_v_xsi = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_xsi == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1704, __pyx_L3_error)
} else {
__pyx_v_xsi = ((int)((int)1));
}
if (values[3]) {
- __pyx_v_xsi_nil = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_xsi_nil == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1704, __pyx_L3_error)
+ __pyx_v_xsi_nil = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_xsi_nil == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1705, __pyx_L3_error)
} else {
- /* "lxml/objectify.pyx":1704
+ /* "lxml/objectify.pyx":1705
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
* bint xsi_nil=False, bint cleanup_namespaces=False): # <<<<<<<<<<<<<<
__pyx_v_xsi_nil = ((int)((int)0));
}
if (values[4]) {
- __pyx_v_cleanup_namespaces = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_cleanup_namespaces == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1704, __pyx_L3_error)
+ __pyx_v_cleanup_namespaces = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_cleanup_namespaces == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1705, __pyx_L3_error)
} else {
__pyx_v_cleanup_namespaces = ((int)((int)0));
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("deannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1703, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("deannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1704, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.deannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4lxml_9objectify_26deannotate(__pyx_self, __pyx_v_element_or_tree, __pyx_v_pytype, __pyx_v_xsi, __pyx_v_xsi_nil, __pyx_v_cleanup_namespaces);
- /* "lxml/objectify.pyx":1703
+ /* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
PyObject *__pyx_t_5 = NULL;
__Pyx_RefNannySetupContext("deannotate", 0);
- /* "lxml/objectify.pyx":1720
+ /* "lxml/objectify.pyx":1721
* the tree, pass the option ``cleanup_namespaces=True``.
* """
* cdef list attribute_names = [] # <<<<<<<<<<<<<<
*
* if pytype:
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1720, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1721, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_attribute_names = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1722
+ /* "lxml/objectify.pyx":1723
* cdef list attribute_names = []
*
* if pytype: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_pytype != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1723
+ /* "lxml/objectify.pyx":1724
*
* if pytype:
* attribute_names.append(PYTYPE_ATTRIBUTE) # <<<<<<<<<<<<<<
* if xsi:
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1723, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1724, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1723, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1724, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1722
+ /* "lxml/objectify.pyx":1723
* cdef list attribute_names = []
*
* if pytype: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1724
+ /* "lxml/objectify.pyx":1725
* if pytype:
* attribute_names.append(PYTYPE_ATTRIBUTE)
* if xsi: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_xsi != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1725
+ /* "lxml/objectify.pyx":1726
* attribute_names.append(PYTYPE_ATTRIBUTE)
* if xsi:
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1725, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1726, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1724
+ /* "lxml/objectify.pyx":1725
* if pytype:
* attribute_names.append(PYTYPE_ATTRIBUTE)
* if xsi: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1726
+ /* "lxml/objectify.pyx":1727
* if xsi:
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
* if xsi_nil: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_xsi_nil != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1727
+ /* "lxml/objectify.pyx":1728
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
* if xsi_nil:
* attribute_names.append(XML_SCHEMA_INSTANCE_NIL_ATTR) # <<<<<<<<<<<<<<
*/
__pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1727, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1728, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1726
+ /* "lxml/objectify.pyx":1727
* if xsi:
* attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
* if xsi_nil: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1729
+ /* "lxml/objectify.pyx":1730
* attribute_names.append(XML_SCHEMA_INSTANCE_NIL_ATTR)
*
* _strip_attributes(element_or_tree, *attribute_names) # <<<<<<<<<<<<<<
* if cleanup_namespaces:
* _cleanup_namespaces(element_or_tree)
*/
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1729, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_element_or_tree);
__Pyx_GIVEREF(__pyx_v_element_or_tree);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_element_or_tree);
- __pyx_t_4 = PySequence_Tuple(__pyx_v_attribute_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error)
+ __pyx_t_4 = PySequence_Tuple(__pyx_v_attribute_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error)
+ __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1730
+ /* "lxml/objectify.pyx":1731
*
* _strip_attributes(element_or_tree, *attribute_names)
* if cleanup_namespaces: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_v_cleanup_namespaces != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1731
+ /* "lxml/objectify.pyx":1732
* _strip_attributes(element_or_tree, *attribute_names)
* if cleanup_namespaces:
* _cleanup_namespaces(element_or_tree) # <<<<<<<<<<<<<<
}
__pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_v_element_or_tree) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_element_or_tree);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1731, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1732, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1730
+ /* "lxml/objectify.pyx":1731
*
* _strip_attributes(element_or_tree, *attribute_names)
* if cleanup_namespaces: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1703
+ /* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1743
+/* "lxml/objectify.pyx":1744
* objectify_parser = __DEFAULT_PARSER
*
* def set_default_parser(new_parser = None): # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) __PYX_ERR(0, 1743, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) __PYX_ERR(0, 1744, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("set_default_parser", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1743, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("set_default_parser", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1744, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.set_default_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
PyObject *__pyx_t_3 = NULL;
__Pyx_RefNannySetupContext("set_default_parser", 0);
- /* "lxml/objectify.pyx":1754
+ /* "lxml/objectify.pyx":1755
* """
* global objectify_parser
* if new_parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1755
+ /* "lxml/objectify.pyx":1756
* global objectify_parser
* if new_parser is None:
* objectify_parser = __DEFAULT_PARSER # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_4lxml_9objectify___DEFAULT_PARSER);
__Pyx_GIVEREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
- /* "lxml/objectify.pyx":1754
+ /* "lxml/objectify.pyx":1755
* """
* global objectify_parser
* if new_parser is None: # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1756
+ /* "lxml/objectify.pyx":1757
* if new_parser is None:
* objectify_parser = __DEFAULT_PARSER
* elif isinstance(new_parser, etree.XMLParser): # <<<<<<<<<<<<<<
* objectify_parser = new_parser
* else:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1756, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1756, __pyx_L1_error)
+ __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_3); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1757, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (likely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":1757
+ /* "lxml/objectify.pyx":1758
* objectify_parser = __DEFAULT_PARSER
* elif isinstance(new_parser, etree.XMLParser):
* objectify_parser = new_parser # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_new_parser);
__Pyx_GIVEREF(__pyx_v_new_parser);
- /* "lxml/objectify.pyx":1756
+ /* "lxml/objectify.pyx":1757
* if new_parser is None:
* objectify_parser = __DEFAULT_PARSER
* elif isinstance(new_parser, etree.XMLParser): # <<<<<<<<<<<<<<
goto __pyx_L3;
}
- /* "lxml/objectify.pyx":1759
+ /* "lxml/objectify.pyx":1760
* objectify_parser = new_parser
* else:
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser" # <<<<<<<<<<<<<<
*/
/*else*/ {
__Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_u_parser_must_inherit_from_lxml_et, 0, 0);
- __PYX_ERR(0, 1759, __pyx_L1_error)
+ __PYX_ERR(0, 1760, __pyx_L1_error)
}
__pyx_L3:;
- /* "lxml/objectify.pyx":1743
+ /* "lxml/objectify.pyx":1744
* objectify_parser = __DEFAULT_PARSER
*
* def set_default_parser(new_parser = None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1761
+/* "lxml/objectify.pyx":1762
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
*
* def makeparser(**kw): # <<<<<<<<<<<<<<
PyObject *__pyx_t_6 = NULL;
__Pyx_RefNannySetupContext("makeparser", 0);
- /* "lxml/objectify.pyx":1771
+ /* "lxml/objectify.pyx":1772
* ``remove_blank_text`` boolean keyword option yourself.
* """
* if 'remove_blank_text' not in kw: # <<<<<<<<<<<<<<
* kw['remove_blank_text'] = True
* parser = etree.XMLParser(**kw)
*/
- __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_remove_blank_text, __pyx_v_kw, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1771, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_remove_blank_text, __pyx_v_kw, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1772, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1772
+ /* "lxml/objectify.pyx":1773
* """
* if 'remove_blank_text' not in kw:
* kw['remove_blank_text'] = True # <<<<<<<<<<<<<<
* parser = etree.XMLParser(**kw)
* parser.set_element_class_lookup( ObjectifyElementClassLookup() )
*/
- if (unlikely(PyDict_SetItem(__pyx_v_kw, __pyx_n_s_remove_blank_text, Py_True) < 0)) __PYX_ERR(0, 1772, __pyx_L1_error)
+ if (unlikely(PyDict_SetItem(__pyx_v_kw, __pyx_n_s_remove_blank_text, Py_True) < 0)) __PYX_ERR(0, 1773, __pyx_L1_error)
- /* "lxml/objectify.pyx":1771
+ /* "lxml/objectify.pyx":1772
* ``remove_blank_text`` boolean keyword option yourself.
* """
* if 'remove_blank_text' not in kw: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1773
+ /* "lxml/objectify.pyx":1774
* if 'remove_blank_text' not in kw:
* kw['remove_blank_text'] = True
* parser = etree.XMLParser(**kw) # <<<<<<<<<<<<<<
* parser.set_element_class_lookup( ObjectifyElementClassLookup() )
* return parser
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1773, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1774, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_kw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1773, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_v_kw); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1774, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_parser = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1774
+ /* "lxml/objectify.pyx":1775
* kw['remove_blank_text'] = True
* parser = etree.XMLParser(**kw)
* parser.set_element_class_lookup( ObjectifyElementClassLookup() ) # <<<<<<<<<<<<<<
* return parser
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_set_element_class_lookup); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1774, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_set_element_class_lookup); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1774, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1774, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1775, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1775
+ /* "lxml/objectify.pyx":1776
* parser = etree.XMLParser(**kw)
* parser.set_element_class_lookup( ObjectifyElementClassLookup() )
* return parser # <<<<<<<<<<<<<<
__pyx_r = __pyx_v_parser;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1761
+ /* "lxml/objectify.pyx":1762
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
*
* def makeparser(**kw): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1777
+/* "lxml/objectify.pyx":1778
* return parser
*
* cdef _Element _makeElement(tag, text, attrib, nsmap): # <<<<<<<<<<<<<<
PyObject *__pyx_t_2 = NULL;
__Pyx_RefNannySetupContext("_makeElement", 0);
- /* "lxml/objectify.pyx":1778
+ /* "lxml/objectify.pyx":1779
*
* cdef _Element _makeElement(tag, text, attrib, nsmap):
* return cetree.makeElement(tag, None, objectify_parser, text, None, attrib, nsmap) # <<<<<<<<<<<<<<
__Pyx_XDECREF(((PyObject *)__pyx_r));
__pyx_t_1 = __pyx_v_4lxml_9objectify_objectify_parser;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)Py_None), __pyx_t_1, __pyx_v_text, Py_None, __pyx_v_attrib, __pyx_v_nsmap)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1778, __pyx_L1_error)
+ __pyx_t_2 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)Py_None), __pyx_t_1, __pyx_v_text, Py_None, __pyx_v_attrib, __pyx_v_nsmap)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = ((struct LxmlElement *)__pyx_t_2);
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1777
+ /* "lxml/objectify.pyx":1778
* return parser
*
* cdef _Element _makeElement(tag, text, attrib, nsmap): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1788
+/* "lxml/objectify.pyx":1789
* SubElement = etree.SubElement
*
* def fromstring(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) __PYX_ERR(0, 1788, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) __PYX_ERR(0, 1789, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1788, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1789, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("fromstring", 0);
__Pyx_INCREF(__pyx_v_parser);
- /* "lxml/objectify.pyx":1800
+ /* "lxml/objectify.pyx":1801
* (DTD, XInclude, ...).
* """
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1801
+ /* "lxml/objectify.pyx":1802
* """
* if parser is None:
* parser = objectify_parser # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
__Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
- /* "lxml/objectify.pyx":1800
+ /* "lxml/objectify.pyx":1801
* (DTD, XInclude, ...).
* """
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1802
+ /* "lxml/objectify.pyx":1803
* if parser is None:
* parser = objectify_parser
* return _fromstring(xml, parser, base_url=base_url) # <<<<<<<<<<<<<<
* def XML(xml, parser=None, *, base_url=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1802, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_xml);
__Pyx_GIVEREF(__pyx_v_xml);
__Pyx_INCREF(__pyx_v_parser);
__Pyx_GIVEREF(__pyx_v_parser);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
- __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1802, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1802, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1802, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1803, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1803, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1788
+ /* "lxml/objectify.pyx":1789
* SubElement = etree.SubElement
*
* def fromstring(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1804
+/* "lxml/objectify.pyx":1805
* return _fromstring(xml, parser, base_url=base_url)
*
* def XML(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) __PYX_ERR(0, 1804, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) __PYX_ERR(0, 1805, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1804, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1805, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("XML", 0);
__Pyx_INCREF(__pyx_v_parser);
- /* "lxml/objectify.pyx":1816
+ /* "lxml/objectify.pyx":1817
* (DTD, XInclude, ...).
* """
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1817
+ /* "lxml/objectify.pyx":1818
* """
* if parser is None:
* parser = objectify_parser # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
__Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
- /* "lxml/objectify.pyx":1816
+ /* "lxml/objectify.pyx":1817
* (DTD, XInclude, ...).
* """
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1818
+ /* "lxml/objectify.pyx":1819
* if parser is None:
* parser = objectify_parser
* return _fromstring(xml, parser, base_url=base_url) # <<<<<<<<<<<<<<
* cdef object _parse
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_xml);
__Pyx_GIVEREF(__pyx_v_xml);
__Pyx_INCREF(__pyx_v_parser);
__Pyx_GIVEREF(__pyx_v_parser);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
- __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1818, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1818, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1819, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1819, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1804
+ /* "lxml/objectify.pyx":1805
* return _fromstring(xml, parser, base_url=base_url)
*
* def XML(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1823
+/* "lxml/objectify.pyx":1824
* _parse = etree.parse
*
* def parse(f, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 1823, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) __PYX_ERR(0, 1824, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1823, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1824, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("lxml.objectify.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
__Pyx_RefNannySetupContext("parse", 0);
__Pyx_INCREF(__pyx_v_parser);
- /* "lxml/objectify.pyx":1834
+ /* "lxml/objectify.pyx":1835
* up external entities (DTD, XInclude, ...) with relative paths.
* """
* if parser is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1835
+ /* "lxml/objectify.pyx":1836
* """
* if parser is None:
* parser = objectify_parser # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
__Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
- /* "lxml/objectify.pyx":1834
+ /* "lxml/objectify.pyx":1835
* up external entities (DTD, XInclude, ...) with relative paths.
* """
* if parser is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1836
+ /* "lxml/objectify.pyx":1837
* if parser is None:
* parser = objectify_parser
* return _parse(f, parser, base_url=base_url) # <<<<<<<<<<<<<<
* cdef dict _DEFAULT_NSMAP = {
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_f);
__Pyx_GIVEREF(__pyx_v_f);
__Pyx_INCREF(__pyx_v_parser);
__Pyx_GIVEREF(__pyx_v_parser);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
- __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1836, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__parse, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1836, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_base_url, __pyx_v_base_url) < 0) __PYX_ERR(0, 1837, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_4lxml_9objectify__parse, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1837, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1823
+ /* "lxml/objectify.pyx":1824
* _parse = etree.parse
*
* def parse(f, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1846
+/* "lxml/objectify.pyx":1847
* E = ElementMaker()
*
* def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes): # <<<<<<<<<<<<<<
if (value) { values[index] = value; kw_args--; }
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "Element") < 0)) __PYX_ERR(0, 1846, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "Element") < 0)) __PYX_ERR(0, 1847, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1846, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1847, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__attributes); __pyx_v__attributes = 0;
__Pyx_AddTraceback("lxml.objectify.Element", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_INCREF(__pyx_v__pytype);
__Pyx_INCREF(__pyx_v__attributes);
- /* "lxml/objectify.pyx":1854
+ /* "lxml/objectify.pyx":1855
* NOTE: requires parser based element class lookup activated in lxml.etree!
* """
* if attrib is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1855
+ /* "lxml/objectify.pyx":1856
* """
* if attrib is not None:
* if _attributes: # <<<<<<<<<<<<<<
* attrib = dict(attrib)
* attrib.update(_attributes)
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1855, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1856, __pyx_L1_error)
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1856
+ /* "lxml/objectify.pyx":1857
* if attrib is not None:
* if _attributes:
* attrib = dict(attrib) # <<<<<<<<<<<<<<
* attrib.update(_attributes)
* _attributes = attrib
*/
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_attrib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1856, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_attrib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_3);
__pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1857
+ /* "lxml/objectify.pyx":1858
* if _attributes:
* attrib = dict(attrib)
* attrib.update(_attributes) # <<<<<<<<<<<<<<
* _attributes = attrib
* if _pytype is None:
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_update); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1857, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_update); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
}
__pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v__attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v__attributes);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1857, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1855
+ /* "lxml/objectify.pyx":1856
* """
* if attrib is not None:
* if _attributes: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1858
+ /* "lxml/objectify.pyx":1859
* attrib = dict(attrib)
* attrib.update(_attributes)
* _attributes = attrib # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_attrib);
__Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_attrib);
- /* "lxml/objectify.pyx":1854
+ /* "lxml/objectify.pyx":1855
* NOTE: requires parser based element class lookup activated in lxml.etree!
* """
* if attrib is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1859
+ /* "lxml/objectify.pyx":1860
* attrib.update(_attributes)
* _attributes = attrib
* if _pytype is None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1860
+ /* "lxml/objectify.pyx":1861
* _attributes = attrib
* if _pytype is None:
* _pytype = TREE_PYTYPE_NAME # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME);
__Pyx_DECREF_SET(__pyx_v__pytype, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME);
- /* "lxml/objectify.pyx":1859
+ /* "lxml/objectify.pyx":1860
* attrib.update(_attributes)
* _attributes = attrib
* if _pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1861
+ /* "lxml/objectify.pyx":1862
* if _pytype is None:
* _pytype = TREE_PYTYPE_NAME
* if nsmap is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1862
+ /* "lxml/objectify.pyx":1863
* _pytype = TREE_PYTYPE_NAME
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
__Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
- /* "lxml/objectify.pyx":1861
+ /* "lxml/objectify.pyx":1862
* if _pytype is None:
* _pytype = TREE_PYTYPE_NAME
* if nsmap is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1863
+ /* "lxml/objectify.pyx":1864
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP
* _attributes[PYTYPE_ATTRIBUTE] = _pytype # <<<<<<<<<<<<<<
* return _makeElement(_tag, None, _attributes, nsmap)
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1863, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1864, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_t_3, __pyx_v__pytype) < 0)) __PYX_ERR(0, 1863, __pyx_L1_error)
+ if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_t_3, __pyx_v__pytype) < 0)) __PYX_ERR(0, 1864, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "lxml/objectify.pyx":1864
+ /* "lxml/objectify.pyx":1865
* nsmap = _DEFAULT_NSMAP
* _attributes[PYTYPE_ATTRIBUTE] = _pytype
* return _makeElement(_tag, None, _attributes, nsmap) # <<<<<<<<<<<<<<
* def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_v__tag, Py_None, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1864, __pyx_L1_error)
+ __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_v__tag, Py_None, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1865, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1846
+ /* "lxml/objectify.pyx":1847
* E = ElementMaker()
*
* def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes): # <<<<<<<<<<<<<<
return __pyx_r;
}
-/* "lxml/objectify.pyx":1866
+/* "lxml/objectify.pyx":1867
* return _makeElement(_tag, None, _attributes, nsmap)
*
* def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None, # <<<<<<<<<<<<<<
}
}
if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "DataElement") < 0)) __PYX_ERR(0, 1866, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "DataElement") < 0)) __PYX_ERR(0, 1867, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("DataElement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1866, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("DataElement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1867, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v__attributes); __pyx_v__attributes = 0;
__Pyx_AddTraceback("lxml.objectify.DataElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_INCREF(__pyx_v__xsi);
__Pyx_INCREF(__pyx_v__attributes);
- /* "lxml/objectify.pyx":1881
+ /* "lxml/objectify.pyx":1882
* in attrib and/or keyword arguments.
* """
* if nsmap is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1882
+ /* "lxml/objectify.pyx":1883
* """
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
__Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
- /* "lxml/objectify.pyx":1881
+ /* "lxml/objectify.pyx":1882
* in attrib and/or keyword arguments.
* """
* if nsmap is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1883
+ /* "lxml/objectify.pyx":1884
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP
* if attrib is not None and attrib: # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_3;
goto __pyx_L5_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1883, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1884, __pyx_L1_error)
__pyx_t_2 = __pyx_t_3;
__pyx_L5_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1884
+ /* "lxml/objectify.pyx":1885
* nsmap = _DEFAULT_NSMAP
* if attrib is not None and attrib:
* if _attributes: # <<<<<<<<<<<<<<
* attrib = dict(attrib)
* attrib.update(_attributes)
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1884, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1885, __pyx_L1_error)
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1885
+ /* "lxml/objectify.pyx":1886
* if attrib is not None and attrib:
* if _attributes:
* attrib = dict(attrib) # <<<<<<<<<<<<<<
* attrib.update(_attributes)
* _attributes = attrib
*/
- __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_attrib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1885, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_attrib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1886
+ /* "lxml/objectify.pyx":1887
* if _attributes:
* attrib = dict(attrib)
* attrib.update(_attributes) # <<<<<<<<<<<<<<
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement):
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1886, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v__attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v__attributes);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1887, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1884
+ /* "lxml/objectify.pyx":1885
* nsmap = _DEFAULT_NSMAP
* if attrib is not None and attrib:
* if _attributes: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1887
+ /* "lxml/objectify.pyx":1888
* attrib = dict(attrib)
* attrib.update(_attributes)
* _attributes = attrib # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_attrib);
__Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_attrib);
- /* "lxml/objectify.pyx":1883
+ /* "lxml/objectify.pyx":1884
* if nsmap is None:
* nsmap = _DEFAULT_NSMAP
* if attrib is not None and attrib: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1888
+ /* "lxml/objectify.pyx":1889
* attrib.update(_attributes)
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement): # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1889
+ /* "lxml/objectify.pyx":1890
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement):
* if _pytype is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1890
+ /* "lxml/objectify.pyx":1891
* if isinstance(_value, ObjectifiedElement):
* if _pytype is None:
* if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP: # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_1;
goto __pyx_L11_bool_binop_done;
}
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1890, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1891, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_1) != 0);
if (__pyx_t_3) {
} else {
__pyx_L11_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1892
+ /* "lxml/objectify.pyx":1893
* if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:
* # special case: no change!
* return _value.__copy__() # <<<<<<<<<<<<<<
* # reuse existing nsmap unless redefined in nsmap parameter
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_copy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1892, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_copy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1892, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1893, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1890
+ /* "lxml/objectify.pyx":1891
* if isinstance(_value, ObjectifiedElement):
* if _pytype is None:
* if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1889
+ /* "lxml/objectify.pyx":1890
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement):
* if _pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1888
+ /* "lxml/objectify.pyx":1889
* attrib.update(_attributes)
* _attributes = attrib
* if isinstance(_value, ObjectifiedElement): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1893
+ /* "lxml/objectify.pyx":1894
* # special case: no change!
* return _value.__copy__()
* if isinstance(_value, ObjectifiedDataElement): # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1895
+ /* "lxml/objectify.pyx":1896
* if isinstance(_value, ObjectifiedDataElement):
* # reuse existing nsmap unless redefined in nsmap parameter
* temp = _value.nsmap # <<<<<<<<<<<<<<
* if temp is not None and temp:
* temp = dict(temp)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_nsmap); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1895, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_nsmap); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1896, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_v_temp = __pyx_t_4;
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1896
+ /* "lxml/objectify.pyx":1897
* # reuse existing nsmap unless redefined in nsmap parameter
* temp = _value.nsmap
* if temp is not None and temp: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_3;
goto __pyx_L16_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1896, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1897, __pyx_L1_error)
__pyx_t_1 = __pyx_t_3;
__pyx_L16_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1897
+ /* "lxml/objectify.pyx":1898
* temp = _value.nsmap
* if temp is not None and temp:
* temp = dict(temp) # <<<<<<<<<<<<<<
* temp.update(nsmap)
* nsmap = temp
*/
- __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_temp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1897, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_temp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1898, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1898
+ /* "lxml/objectify.pyx":1899
* if temp is not None and temp:
* temp = dict(temp)
* temp.update(nsmap) # <<<<<<<<<<<<<<
* nsmap = temp
* # reuse existing attributes unless redefined in attrib/_attributes
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1898, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1899, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_nsmap) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_nsmap);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1898, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1899, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1899
+ /* "lxml/objectify.pyx":1900
* temp = dict(temp)
* temp.update(nsmap)
* nsmap = temp # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_temp);
__Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_v_temp);
- /* "lxml/objectify.pyx":1896
+ /* "lxml/objectify.pyx":1897
* # reuse existing nsmap unless redefined in nsmap parameter
* temp = _value.nsmap
* if temp is not None and temp: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1901
+ /* "lxml/objectify.pyx":1902
* nsmap = temp
* # reuse existing attributes unless redefined in attrib/_attributes
* temp = _value.attrib # <<<<<<<<<<<<<<
* if temp is not None and temp:
* temp = dict(temp)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_attrib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1901, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s_attrib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1902, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1902
+ /* "lxml/objectify.pyx":1903
* # reuse existing attributes unless redefined in attrib/_attributes
* temp = _value.attrib
* if temp is not None and temp: # <<<<<<<<<<<<<<
__pyx_t_1 = __pyx_t_2;
goto __pyx_L19_bool_binop_done;
}
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1902, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1903, __pyx_L1_error)
__pyx_t_1 = __pyx_t_2;
__pyx_L19_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1903
+ /* "lxml/objectify.pyx":1904
* temp = _value.attrib
* if temp is not None and temp:
* temp = dict(temp) # <<<<<<<<<<<<<<
* temp.update(_attributes)
* _attributes = temp
*/
- __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_temp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1903, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_temp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1904, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1904
+ /* "lxml/objectify.pyx":1905
* if temp is not None and temp:
* temp = dict(temp)
* temp.update(_attributes) # <<<<<<<<<<<<<<
* _attributes = temp
* # reuse existing xsi:type or py:pytype attributes, unless provided as
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1904, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s_update); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v__attributes) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v__attributes);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1904, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1905
+ /* "lxml/objectify.pyx":1906
* temp = dict(temp)
* temp.update(_attributes)
* _attributes = temp # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v_temp);
__Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_temp);
- /* "lxml/objectify.pyx":1902
+ /* "lxml/objectify.pyx":1903
* # reuse existing attributes unless redefined in attrib/_attributes
* temp = _value.attrib
* if temp is not None and temp: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1908
+ /* "lxml/objectify.pyx":1909
* # reuse existing xsi:type or py:pytype attributes, unless provided as
* # arguments
* if _xsi is None and _pytype is None: # <<<<<<<<<<<<<<
__pyx_L22_bool_binop_done:;
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1909
+ /* "lxml/objectify.pyx":1910
* # arguments
* if _xsi is None and _pytype is None:
* _xsi = _attributes.get(XML_SCHEMA_INSTANCE_TYPE_ATTR) # <<<<<<<<<<<<<<
* _pytype = _attributes.get(PYTYPE_ATTRIBUTE)
*
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__attributes, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1909, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__attributes, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1910, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
}
__pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1910, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v__xsi, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1910
+ /* "lxml/objectify.pyx":1911
* if _xsi is None and _pytype is None:
* _xsi = _attributes.get(XML_SCHEMA_INSTANCE_TYPE_ATTR)
* _pytype = _attributes.get(PYTYPE_ATTRIBUTE) # <<<<<<<<<<<<<<
*
* if _xsi is not None:
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__attributes, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1910, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__attributes, __pyx_n_s_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1911, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1910, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1911, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1910, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1911, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1908
+ /* "lxml/objectify.pyx":1909
* # reuse existing xsi:type or py:pytype attributes, unless provided as
* # arguments
* if _xsi is None and _pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1893
+ /* "lxml/objectify.pyx":1894
* # special case: no change!
* return _value.__copy__()
* if isinstance(_value, ObjectifiedDataElement): # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1912
+ /* "lxml/objectify.pyx":1913
* _pytype = _attributes.get(PYTYPE_ATTRIBUTE)
*
* if _xsi is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1913
+ /* "lxml/objectify.pyx":1914
*
* if _xsi is not None:
* if u':' in _xsi: # <<<<<<<<<<<<<<
* prefix, name = _xsi.split(u':', 1)
* ns = nsmap.get(prefix)
*/
- __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1913, __pyx_L1_error)
+ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_kp_u__17, __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1914, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1914
+ /* "lxml/objectify.pyx":1915
* if _xsi is not None:
* if u':' in _xsi:
* prefix, name = _xsi.split(u':', 1) # <<<<<<<<<<<<<<
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS:
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__xsi, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1914, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__xsi, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1914, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1914, __pyx_L1_error)
+ __PYX_ERR(0, 1915, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_6);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1914, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1914, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1914, __pyx_L1_error)
+ __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L26_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1914, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1915, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L27_unpacking_done;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1914, __pyx_L1_error)
+ __PYX_ERR(0, 1915, __pyx_L1_error)
__pyx_L27_unpacking_done:;
}
__pyx_v_prefix = __pyx_t_4;
__pyx_v_name = __pyx_t_6;
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1915
+ /* "lxml/objectify.pyx":1916
* if u':' in _xsi:
* prefix, name = _xsi.split(u':', 1)
* ns = nsmap.get(prefix) # <<<<<<<<<<<<<<
* if ns != XML_SCHEMA_NS:
* raise ValueError, u"XSD types require the XSD namespace"
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1915, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_get); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
}
__pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_prefix) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_prefix);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1915, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_ns = __pyx_t_5;
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1916
+ /* "lxml/objectify.pyx":1917
* prefix, name = _xsi.split(u':', 1)
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS: # <<<<<<<<<<<<<<
* raise ValueError, u"XSD types require the XSD namespace"
* elif nsmap is _DEFAULT_NSMAP:
*/
- __pyx_t_5 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1916, __pyx_L1_error)
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1916, __pyx_L1_error)
+ __pyx_t_5 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1917, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1917, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(__pyx_t_1)) {
- /* "lxml/objectify.pyx":1917
+ /* "lxml/objectify.pyx":1918
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS:
* raise ValueError, u"XSD types require the XSD namespace" # <<<<<<<<<<<<<<
* name = _xsi
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_XSD_types_require_the_XSD_namesp, 0, 0);
- __PYX_ERR(0, 1917, __pyx_L1_error)
+ __PYX_ERR(0, 1918, __pyx_L1_error)
- /* "lxml/objectify.pyx":1916
+ /* "lxml/objectify.pyx":1917
* prefix, name = _xsi.split(u':', 1)
* ns = nsmap.get(prefix)
* if ns != XML_SCHEMA_NS: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1913
+ /* "lxml/objectify.pyx":1914
*
* if _xsi is not None:
* if u':' in _xsi: # <<<<<<<<<<<<<<
goto __pyx_L25;
}
- /* "lxml/objectify.pyx":1918
+ /* "lxml/objectify.pyx":1919
* if ns != XML_SCHEMA_NS:
* raise ValueError, u"XSD types require the XSD namespace"
* elif nsmap is _DEFAULT_NSMAP: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1919
+ /* "lxml/objectify.pyx":1920
* raise ValueError, u"XSD types require the XSD namespace"
* elif nsmap is _DEFAULT_NSMAP:
* name = _xsi # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v__xsi);
__pyx_v_name = __pyx_v__xsi;
- /* "lxml/objectify.pyx":1920
+ /* "lxml/objectify.pyx":1921
* elif nsmap is _DEFAULT_NSMAP:
* name = _xsi
* _xsi = u'xsd:' + _xsi # <<<<<<<<<<<<<<
* else:
* name = _xsi
*/
- __pyx_t_5 = PyNumber_Add(__pyx_kp_u_xsd, __pyx_v__xsi); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1920, __pyx_L1_error)
+ __pyx_t_5 = PyNumber_Add(__pyx_kp_u_xsd, __pyx_v__xsi); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1921, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v__xsi, __pyx_t_5);
__pyx_t_5 = 0;
- /* "lxml/objectify.pyx":1918
+ /* "lxml/objectify.pyx":1919
* if ns != XML_SCHEMA_NS:
* raise ValueError, u"XSD types require the XSD namespace"
* elif nsmap is _DEFAULT_NSMAP: # <<<<<<<<<<<<<<
goto __pyx_L25;
}
- /* "lxml/objectify.pyx":1922
+ /* "lxml/objectify.pyx":1923
* _xsi = u'xsd:' + _xsi
* else:
* name = _xsi # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v__xsi);
__pyx_v_name = __pyx_v__xsi;
- /* "lxml/objectify.pyx":1923
+ /* "lxml/objectify.pyx":1924
* else:
* name = _xsi
* for prefix, ns in nsmap.items(): # <<<<<<<<<<<<<<
* if ns == XML_SCHEMA_NS:
* if prefix is not None and prefix:
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s_items); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
}
__pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
__pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
__pyx_t_10 = NULL;
} else {
- __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1924, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
for (;;) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1924, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1924, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 1923, __pyx_L1_error)
+ else __PYX_ERR(0, 1924, __pyx_L1_error)
}
break;
}
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 1923, __pyx_L1_error)
+ __PYX_ERR(0, 1924, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_7);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1923, __pyx_L1_error)
+ __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_8 = Py_TYPE(__pyx_t_11)->tp_iternext;
__Pyx_GOTREF(__pyx_t_4);
index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L31_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 2) < 0) __PYX_ERR(0, 1923, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_11), 2) < 0) __PYX_ERR(0, 1924, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L32_unpacking_done;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 1923, __pyx_L1_error)
+ __PYX_ERR(0, 1924, __pyx_L1_error)
__pyx_L32_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1924
+ /* "lxml/objectify.pyx":1925
* name = _xsi
* for prefix, ns in nsmap.items():
* if ns == XML_SCHEMA_NS: # <<<<<<<<<<<<<<
* if prefix is not None and prefix:
* _xsi = prefix + u':' + _xsi
*/
- __pyx_t_5 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1924, __pyx_L1_error)
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1924, __pyx_L1_error)
+ __pyx_t_5 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1925, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1925, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1925
+ /* "lxml/objectify.pyx":1926
* for prefix, ns in nsmap.items():
* if ns == XML_SCHEMA_NS:
* if prefix is not None and prefix: # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_3;
goto __pyx_L35_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1925, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1926, __pyx_L1_error)
__pyx_t_2 = __pyx_t_3;
__pyx_L35_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1926
+ /* "lxml/objectify.pyx":1927
* if ns == XML_SCHEMA_NS:
* if prefix is not None and prefix:
* _xsi = prefix + u':' + _xsi # <<<<<<<<<<<<<<
* break
* else:
*/
- __pyx_t_5 = PyNumber_Add(__pyx_v_prefix, __pyx_kp_u__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1926, __pyx_L1_error)
+ __pyx_t_5 = PyNumber_Add(__pyx_v_prefix, __pyx_kp_u__17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_v__xsi); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1926, __pyx_L1_error)
+ __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_v__xsi); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v__xsi, __pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1925
+ /* "lxml/objectify.pyx":1926
* for prefix, ns in nsmap.items():
* if ns == XML_SCHEMA_NS:
* if prefix is not None and prefix: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1927
+ /* "lxml/objectify.pyx":1928
* if prefix is not None and prefix:
* _xsi = prefix + u':' + _xsi
* break # <<<<<<<<<<<<<<
*/
goto __pyx_L30_break;
- /* "lxml/objectify.pyx":1924
+ /* "lxml/objectify.pyx":1925
* name = _xsi
* for prefix, ns in nsmap.items():
* if ns == XML_SCHEMA_NS: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1923
+ /* "lxml/objectify.pyx":1924
* else:
* name = _xsi
* for prefix, ns in nsmap.items(): # <<<<<<<<<<<<<<
}
/*else*/ {
- /* "lxml/objectify.pyx":1929
+ /* "lxml/objectify.pyx":1930
* break
* else:
* raise ValueError, u"XSD types require the XSD namespace" # <<<<<<<<<<<<<<
* if _pytype is None:
*/
__Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_u_XSD_types_require_the_XSD_namesp, 0, 0);
- __PYX_ERR(0, 1929, __pyx_L1_error)
+ __PYX_ERR(0, 1930, __pyx_L1_error)
}
- /* "lxml/objectify.pyx":1923
+ /* "lxml/objectify.pyx":1924
* else:
* name = _xsi
* for prefix, ns in nsmap.items(): # <<<<<<<<<<<<<<
}
__pyx_L25:;
- /* "lxml/objectify.pyx":1930
+ /* "lxml/objectify.pyx":1931
* else:
* raise ValueError, u"XSD types require the XSD namespace"
* _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi # <<<<<<<<<<<<<<
* if _pytype is None:
* # allow using unregistered or even wrong xsi:type names
*/
- if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR, __pyx_v__xsi) < 0)) __PYX_ERR(0, 1930, __pyx_L1_error)
+ if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR, __pyx_v__xsi) < 0)) __PYX_ERR(0, 1931, __pyx_L1_error)
- /* "lxml/objectify.pyx":1931
+ /* "lxml/objectify.pyx":1932
* raise ValueError, u"XSD types require the XSD namespace"
* _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi
* if _pytype is None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1933
+ /* "lxml/objectify.pyx":1934
* if _pytype is None:
* # allow using unregistered or even wrong xsi:type names
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(_xsi) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1933, __pyx_L1_error)
+ __PYX_ERR(0, 1934, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v__xsi, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1933, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v__xsi, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1934, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_t_6;
__Pyx_INCREF(__pyx_t_7);
__pyx_v_py_type = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_7);
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1934
+ /* "lxml/objectify.pyx":1935
* # allow using unregistered or even wrong xsi:type names
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(_xsi)
* if py_type is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1935
+ /* "lxml/objectify.pyx":1936
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(_xsi)
* if py_type is None:
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(name) # <<<<<<<<<<<<<<
*/
if (unlikely(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1935, __pyx_L1_error)
+ __PYX_ERR(0, 1936, __pyx_L1_error)
}
- __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1935, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1936, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __pyx_t_7;
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_py_type, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1934
+ /* "lxml/objectify.pyx":1935
* # allow using unregistered or even wrong xsi:type names
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(_xsi)
* if py_type is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1936
+ /* "lxml/objectify.pyx":1937
* if py_type is None:
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(name)
* if py_type is not None: # <<<<<<<<<<<<<<
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
- /* "lxml/objectify.pyx":1937
+ /* "lxml/objectify.pyx":1938
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(name)
* if py_type is not None:
* _pytype = py_type.name # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1936
+ /* "lxml/objectify.pyx":1937
* if py_type is None:
* py_type = <PyType>_SCHEMA_TYPE_DICT.get(name)
* if py_type is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1931
+ /* "lxml/objectify.pyx":1932
* raise ValueError, u"XSD types require the XSD namespace"
* _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi
* if _pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1912
+ /* "lxml/objectify.pyx":1913
* _pytype = _attributes.get(PYTYPE_ATTRIBUTE)
*
* if _xsi is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1939
+ /* "lxml/objectify.pyx":1940
* _pytype = py_type.name
*
* if _pytype is None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1940
+ /* "lxml/objectify.pyx":1941
*
* if _pytype is None:
* _pytype = _pytypename(_value) # <<<<<<<<<<<<<<
*
* if _value is None and _pytype != u"str":
*/
- __pyx_t_6 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v__value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1940, __pyx_L1_error)
+ __pyx_t_6 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v__value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1939
+ /* "lxml/objectify.pyx":1940
* _pytype = py_type.name
*
* if _pytype is None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1942
+ /* "lxml/objectify.pyx":1943
* _pytype = _pytypename(_value)
*
* if _value is None and _pytype != u"str": # <<<<<<<<<<<<<<
__pyx_t_2 = __pyx_t_1;
goto __pyx_L43_bool_binop_done;
}
- __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_str, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1942, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_str, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1943, __pyx_L1_error)
__pyx_t_2 = __pyx_t_1;
__pyx_L43_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1943
+ /* "lxml/objectify.pyx":1944
*
* if _value is None and _pytype != u"str":
* _pytype = _pytype or u"NoneType" # <<<<<<<<<<<<<<
* strval = None
* elif python._isString(_value):
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__pytype); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1943, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__pytype); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1944, __pyx_L1_error)
if (!__pyx_t_2) {
} else {
__Pyx_INCREF(__pyx_v__pytype);
__Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1944
+ /* "lxml/objectify.pyx":1945
* if _value is None and _pytype != u"str":
* _pytype = _pytype or u"NoneType"
* strval = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__pyx_v_strval = Py_None;
- /* "lxml/objectify.pyx":1942
+ /* "lxml/objectify.pyx":1943
* _pytype = _pytypename(_value)
*
* if _value is None and _pytype != u"str": # <<<<<<<<<<<<<<
goto __pyx_L42;
}
- /* "lxml/objectify.pyx":1945
+ /* "lxml/objectify.pyx":1946
* _pytype = _pytype or u"NoneType"
* strval = None
* elif python._isString(_value): # <<<<<<<<<<<<<<
__pyx_t_2 = (_isString(__pyx_v__value) != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1946
+ /* "lxml/objectify.pyx":1947
* strval = None
* elif python._isString(_value):
* strval = _value # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_v__value);
__pyx_v_strval = __pyx_v__value;
- /* "lxml/objectify.pyx":1945
+ /* "lxml/objectify.pyx":1946
* _pytype = _pytype or u"NoneType"
* strval = None
* elif python._isString(_value): # <<<<<<<<<<<<<<
goto __pyx_L42;
}
- /* "lxml/objectify.pyx":1947
+ /* "lxml/objectify.pyx":1948
* elif python._isString(_value):
* strval = _value
* elif isinstance(_value, bool): # <<<<<<<<<<<<<<
*/
__pyx_t_6 = ((PyObject*)&PyBool_Type);
__Pyx_INCREF(__pyx_t_6);
- __pyx_t_2 = PyObject_IsInstance(__pyx_v__value, __pyx_t_6); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1947, __pyx_L1_error)
+ __pyx_t_2 = PyObject_IsInstance(__pyx_v__value, __pyx_t_6); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1948, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1948
+ /* "lxml/objectify.pyx":1949
* strval = _value
* elif isinstance(_value, bool):
* if _value: # <<<<<<<<<<<<<<
* strval = u"true"
* else:
*/
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1948, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1949, __pyx_L1_error)
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1949
+ /* "lxml/objectify.pyx":1950
* elif isinstance(_value, bool):
* if _value:
* strval = u"true" # <<<<<<<<<<<<<<
__Pyx_INCREF(__pyx_n_u_true);
__pyx_v_strval = __pyx_n_u_true;
- /* "lxml/objectify.pyx":1948
+ /* "lxml/objectify.pyx":1949
* strval = _value
* elif isinstance(_value, bool):
* if _value: # <<<<<<<<<<<<<<
goto __pyx_L47;
}
- /* "lxml/objectify.pyx":1951
+ /* "lxml/objectify.pyx":1952
* strval = u"true"
* else:
* strval = u"false" # <<<<<<<<<<<<<<
}
__pyx_L47:;
- /* "lxml/objectify.pyx":1947
+ /* "lxml/objectify.pyx":1948
* elif python._isString(_value):
* strval = _value
* elif isinstance(_value, bool): # <<<<<<<<<<<<<<
goto __pyx_L42;
}
- /* "lxml/objectify.pyx":1953
+ /* "lxml/objectify.pyx":1954
* strval = u"false"
* else:
* py_type = <PyType>_PYTYPE_DICT.get(_pytype) # <<<<<<<<<<<<<<
/*else*/ {
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1953, __pyx_L1_error)
+ __PYX_ERR(0, 1954, __pyx_L1_error)
}
- __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v__pytype, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1953, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v__pytype, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __pyx_t_6;
__Pyx_INCREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_py_type, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_7));
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1954
+ /* "lxml/objectify.pyx":1955
* else:
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* stringify = unicode if py_type is None else py_type.stringify # <<<<<<<<<<<<<<
__pyx_v_stringify = __pyx_t_7;
__pyx_t_7 = 0;
- /* "lxml/objectify.pyx":1955
+ /* "lxml/objectify.pyx":1956
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* stringify = unicode if py_type is None else py_type.stringify
* strval = stringify(_value) # <<<<<<<<<<<<<<
}
__pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v__value) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v__value);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1955, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1956, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_strval = __pyx_t_7;
}
__pyx_L42:;
- /* "lxml/objectify.pyx":1957
+ /* "lxml/objectify.pyx":1958
* strval = stringify(_value)
*
* if _pytype is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1958
+ /* "lxml/objectify.pyx":1959
*
* if _pytype is not None:
* if _pytype == u"NoneType" or _pytype == u"none": # <<<<<<<<<<<<<<
* strval = None
* _attributes[XML_SCHEMA_INSTANCE_NIL_ATTR] = u"true"
*/
- __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_NoneType, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1958, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_NoneType, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1959, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_2 = __pyx_t_1;
goto __pyx_L50_bool_binop_done;
}
- __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1958, __pyx_L1_error)
+ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v__pytype, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1959, __pyx_L1_error)
__pyx_t_2 = __pyx_t_1;
__pyx_L50_bool_binop_done:;
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1959
+ /* "lxml/objectify.pyx":1960
* if _pytype is not None:
* if _pytype == u"NoneType" or _pytype == u"none":
* strval = None # <<<<<<<<<<<<<<
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_strval, Py_None);
- /* "lxml/objectify.pyx":1960
+ /* "lxml/objectify.pyx":1961
* if _pytype == u"NoneType" or _pytype == u"none":
* strval = None
* _attributes[XML_SCHEMA_INSTANCE_NIL_ATTR] = u"true" # <<<<<<<<<<<<<<
* else:
* # check if type information from arguments is valid
*/
- if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR, __pyx_n_u_true) < 0)) __PYX_ERR(0, 1960, __pyx_L1_error)
+ if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR, __pyx_n_u_true) < 0)) __PYX_ERR(0, 1961, __pyx_L1_error)
- /* "lxml/objectify.pyx":1958
+ /* "lxml/objectify.pyx":1959
*
* if _pytype is not None:
* if _pytype == u"NoneType" or _pytype == u"none": # <<<<<<<<<<<<<<
goto __pyx_L49;
}
- /* "lxml/objectify.pyx":1963
+ /* "lxml/objectify.pyx":1964
* else:
* # check if type information from arguments is valid
* py_type = <PyType>_PYTYPE_DICT.get(_pytype) # <<<<<<<<<<<<<<
/*else*/ {
if (unlikely(__pyx_v_4lxml_9objectify__PYTYPE_DICT == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
- __PYX_ERR(0, 1963, __pyx_L1_error)
+ __PYX_ERR(0, 1964, __pyx_L1_error)
}
- __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v__pytype, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1963, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_4lxml_9objectify__PYTYPE_DICT, __pyx_v__pytype, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __pyx_t_7;
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_py_type, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
__pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1964
+ /* "lxml/objectify.pyx":1965
* # check if type information from arguments is valid
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* if py_type is not None: # <<<<<<<<<<<<<<
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
- /* "lxml/objectify.pyx":1965
+ /* "lxml/objectify.pyx":1966
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* if py_type is not None:
* if py_type.type_check is not None: # <<<<<<<<<<<<<<
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "lxml/objectify.pyx":1966
+ /* "lxml/objectify.pyx":1967
* if py_type is not None:
* if py_type.type_check is not None:
* py_type.type_check(strval) # <<<<<<<<<<<<<<
}
__pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_v_strval) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_strval);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1966, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1967, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1965
+ /* "lxml/objectify.pyx":1966
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* if py_type is not None:
* if py_type.type_check is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1967
+ /* "lxml/objectify.pyx":1968
* if py_type.type_check is not None:
* py_type.type_check(strval)
* _attributes[PYTYPE_ATTRIBUTE] = _pytype # <<<<<<<<<<<<<<
*
* return _makeElement(u"value", strval, _attributes, nsmap)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1967, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1968, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_t_6, __pyx_v__pytype) < 0)) __PYX_ERR(0, 1967, __pyx_L1_error)
+ if (unlikely(PyObject_SetItem(__pyx_v__attributes, __pyx_t_6, __pyx_v__pytype) < 0)) __PYX_ERR(0, 1968, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "lxml/objectify.pyx":1964
+ /* "lxml/objectify.pyx":1965
* # check if type information from arguments is valid
* py_type = <PyType>_PYTYPE_DICT.get(_pytype)
* if py_type is not None: # <<<<<<<<<<<<<<
}
__pyx_L49:;
- /* "lxml/objectify.pyx":1957
+ /* "lxml/objectify.pyx":1958
* strval = stringify(_value)
*
* if _pytype is not None: # <<<<<<<<<<<<<<
*/
}
- /* "lxml/objectify.pyx":1969
+ /* "lxml/objectify.pyx":1970
* _attributes[PYTYPE_ATTRIBUTE] = _pytype
*
* return _makeElement(u"value", strval, _attributes, nsmap) # <<<<<<<<<<<<<<
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_n_u_value, __pyx_v_strval, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1969, __pyx_L1_error)
+ __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_n_u_value, __pyx_v_strval, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L0;
- /* "lxml/objectify.pyx":1866
+ /* "lxml/objectify.pyx":1867
* return _makeElement(_tag, None, _attributes, nsmap)
*
* def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None, # <<<<<<<<<<<<<<
__pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 451, __pyx_L1_error)
__pyx_builtin_oct = __Pyx_GetBuiltinName(__pyx_n_s_oct); if (!__pyx_builtin_oct) __PYX_ERR(0, 645, __pyx_L1_error)
__pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s_hex); if (!__pyx_builtin_hex) __PYX_ERR(0, 648, __pyx_L1_error)
- __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 967, __pyx_L1_error)
- __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s_map); if (!__pyx_builtin_map) __PYX_ERR(0, 1005, __pyx_L1_error)
+ __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s_map); if (!__pyx_builtin_map) __PYX_ERR(0, 1006, __pyx_L1_error)
__pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 169, __pyx_L1_error)
return 0;
__pyx_L1_error:;
__Pyx_GOTREF(__pyx_slice__3);
__Pyx_GIVEREF(__pyx_slice__3);
- /* "lxml/objectify.pyx":1027
+ /* "lxml/objectify.pyx":1028
* cdef _registerPyTypes():
* pytype = PyType(u'int', int, IntElement)
* pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort", # <<<<<<<<<<<<<<
* u"unsignedByte", u"nonPositiveInteger",
* u"negativeInteger", u"long", u"nonNegativeInteger",
*/
- __pyx_tuple__5 = PyTuple_Pack(13, __pyx_n_u_integer, __pyx_n_u_int, __pyx_n_u_short, __pyx_n_u_byte, __pyx_n_u_unsignedShort, __pyx_n_u_unsignedByte, __pyx_n_u_nonPositiveInteger, __pyx_n_u_negativeInteger, __pyx_n_u_long, __pyx_n_u_nonNegativeInteger, __pyx_n_u_unsignedLong, __pyx_n_u_unsignedInt, __pyx_n_u_positiveInteger); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 1027, __pyx_L1_error)
+ __pyx_tuple__5 = PyTuple_Pack(13, __pyx_n_u_integer, __pyx_n_u_int, __pyx_n_u_short, __pyx_n_u_byte, __pyx_n_u_unsignedShort, __pyx_n_u_unsignedByte, __pyx_n_u_nonPositiveInteger, __pyx_n_u_negativeInteger, __pyx_n_u_long, __pyx_n_u_nonNegativeInteger, __pyx_n_u_unsignedLong, __pyx_n_u_unsignedInt, __pyx_n_u_positiveInteger); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 1028, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__5);
__Pyx_GIVEREF(__pyx_tuple__5);
- /* "lxml/objectify.pyx":1038
+ /* "lxml/objectify.pyx":1039
*
* pytype = PyType(u'float', float, FloatElement, repr)
* pytype.xmlSchemaTypes = (u"double", u"float") # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- __pyx_tuple__6 = PyTuple_Pack(2, __pyx_n_u_double, __pyx_n_u_float); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 1038, __pyx_L1_error)
+ __pyx_tuple__6 = PyTuple_Pack(2, __pyx_n_u_double, __pyx_n_u_float); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 1039, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__6);
__Pyx_GIVEREF(__pyx_tuple__6);
- /* "lxml/objectify.pyx":1042
+ /* "lxml/objectify.pyx":1043
*
* pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
* pytype.xmlSchemaTypes = (u"boolean",) # <<<<<<<<<<<<<<
* pytype.register()
*
*/
- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_n_u_boolean); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 1042, __pyx_L1_error)
+ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_n_u_boolean); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__7);
__Pyx_GIVEREF(__pyx_tuple__7);
- /* "lxml/objectify.pyx":1046
+ /* "lxml/objectify.pyx":1047
*
* pytype = PyType(u'str', None, StringElement)
* pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language", # <<<<<<<<<<<<<<
* u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
* u"NMTOKEN", )
*/
- __pyx_tuple__8 = PyTuple_Pack(10, __pyx_n_u_string, __pyx_n_u_normalizedString, __pyx_n_u_token, __pyx_n_u_language, __pyx_n_u_Name, __pyx_n_u_NCName, __pyx_n_u_ID, __pyx_n_u_IDREF, __pyx_n_u_ENTITY, __pyx_n_u_NMTOKEN); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 1046, __pyx_L1_error)
+ __pyx_tuple__8 = PyTuple_Pack(10, __pyx_n_u_string, __pyx_n_u_normalizedString, __pyx_n_u_token, __pyx_n_u_language, __pyx_n_u_Name, __pyx_n_u_NCName, __pyx_n_u_ID, __pyx_n_u_IDREF, __pyx_n_u_ENTITY, __pyx_n_u_NMTOKEN); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 1047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__8);
__Pyx_GIVEREF(__pyx_tuple__8);
- /* "lxml/objectify.pyx":1343
+ /* "lxml/objectify.pyx":1344
* result += _dump(child, indent)
* if indent == 1:
* return result[:-1] # strip last '\n' # <<<<<<<<<<<<<<
* else:
* return result
*/
- __pyx_slice__16 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__16)) __PYX_ERR(0, 1343, __pyx_L1_error)
+ __pyx_slice__16 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__16)) __PYX_ERR(0, 1344, __pyx_L1_error)
__Pyx_GOTREF(__pyx_slice__16);
__Pyx_GIVEREF(__pyx_slice__16);
- /* "lxml/objectify.pyx":1424
+ /* "lxml/objectify.pyx":1425
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is None and u':' in value:
* prefix, value = value.split(u':', 1) # <<<<<<<<<<<<<<
* schema_type = <PyType>_SCHEMA_TYPE_DICT.get(value)
* if schema_type is not None:
*/
- __pyx_tuple__18 = PyTuple_Pack(2, __pyx_kp_u__17, __pyx_int_1); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 1424, __pyx_L1_error)
+ __pyx_tuple__18 = PyTuple_Pack(2, __pyx_kp_u__17, __pyx_int_1); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 1425, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__18);
__Pyx_GIVEREF(__pyx_tuple__18);
__Pyx_GIVEREF(__pyx_tuple__52);
__pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_complex, 781, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 781, __pyx_L1_error)
- /* "lxml/objectify.pyx":815
+ /* "lxml/objectify.pyx":816
* Python's bool type.
* """
* def _init(self): # <<<<<<<<<<<<<<
* self._parse_value = __parseBool
*
*/
- __pyx_tuple__54 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 815, __pyx_L1_error)
+ __pyx_tuple__54 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__54);
__Pyx_GIVEREF(__pyx_tuple__54);
- __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_init, 815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 815, __pyx_L1_error)
+ __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_init, 816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 816, __pyx_L1_error)
- /* "lxml/objectify.pyx":837
- * return __parseBool(textOf(self._c_node))
+ /* "lxml/objectify.pyx":838
+ * return __parseBool(textOf(self._c_node))
*
* def __checkBool(s): # <<<<<<<<<<<<<<
* cdef int value = -1
* if s is not None:
*/
- __pyx_tuple__56 = PyTuple_Pack(2, __pyx_n_s_s_3, __pyx_n_s_value); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 837, __pyx_L1_error)
+ __pyx_tuple__56 = PyTuple_Pack(2, __pyx_n_s_s_3, __pyx_n_s_value); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__56);
__Pyx_GIVEREF(__pyx_tuple__56);
- __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_checkBool, 837, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 837, __pyx_L1_error)
+ __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_checkBool, 838, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 838, __pyx_L1_error)
- /* "lxml/objectify.pyx":844
+ /* "lxml/objectify.pyx":845
* raise ValueError
*
* cpdef bint __parseBool(s) except -1: # <<<<<<<<<<<<<<
* cdef int value
* if s is None:
*/
- __pyx_tuple__58 = PyTuple_Pack(1, __pyx_n_s_s_3); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 844, __pyx_L1_error)
+ __pyx_tuple__58 = PyTuple_Pack(1, __pyx_n_s_s_3); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__58);
__Pyx_GIVEREF(__pyx_tuple__58);
- __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_parseBool, 844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 844, __pyx_L1_error)
+ __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_parseBool, 845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 845, __pyx_L1_error)
- /* "lxml/objectify.pyx":942
+ /* "lxml/objectify.pyx":943
* return "PyType(%s, %s)" % (self.name, self._type.__name__)
*
* def register(self, before=None, after=None): # <<<<<<<<<<<<<<
* u"""register(self, before=None, after=None)
*
*/
- __pyx_tuple__60 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_before, __pyx_n_s_after, __pyx_n_s_item, __pyx_n_s_entry, __pyx_n_s_first_pos, __pyx_n_s_last_pos, __pyx_n_s_i, __pyx_n_s_check, __pyx_n_s_pytype, __pyx_n_s_xs_type); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 942, __pyx_L1_error)
+ __pyx_tuple__60 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_before, __pyx_n_s_after, __pyx_n_s_item, __pyx_n_s_entry, __pyx_n_s_first_pos, __pyx_n_s_last_pos, __pyx_n_s_i, __pyx_n_s_check, __pyx_n_s_pytype, __pyx_n_s_xs_type); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__60);
__Pyx_GIVEREF(__pyx_tuple__60);
- __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_register, 942, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 942, __pyx_L1_error)
+ __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_register, 943, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 943, __pyx_L1_error)
- /* "lxml/objectify.pyx":983
+ /* "lxml/objectify.pyx":984
* _SCHEMA_TYPE_DICT[xs_type] = self
*
* def unregister(self): # <<<<<<<<<<<<<<
* u"unregister(self)"
* if _PYTYPE_DICT.get(self.name) is self:
*/
- __pyx_tuple__62 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_xs_type, __pyx_n_s_pytype); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 983, __pyx_L1_error)
+ __pyx_tuple__62 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_xs_type, __pyx_n_s_pytype); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__62);
__Pyx_GIVEREF(__pyx_tuple__62);
- __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_unregister, 983, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 983, __pyx_L1_error)
+ __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_unregister, 984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 984, __pyx_L1_error)
- /* "lxml/objectify.pyx":1012
+ /* "lxml/objectify.pyx":1013
* cdef list _TYPE_CHECKS = []
*
* def __lower_bool(b): # <<<<<<<<<<<<<<
* return u"true" if b else u"false"
*
*/
- __pyx_tuple__64 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 1012, __pyx_L1_error)
+ __pyx_tuple__64 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 1013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__64);
__Pyx_GIVEREF(__pyx_tuple__64);
- __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_lower_bool, 1012, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 1012, __pyx_L1_error)
+ __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_lower_bool, 1013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 1013, __pyx_L1_error)
- /* "lxml/objectify.pyx":1018
+ /* "lxml/objectify.pyx":1019
* return u"str" if python._isString(obj) else _typename(obj)
*
* def pytypename(obj): # <<<<<<<<<<<<<<
* u"""pytypename(obj)
*
*/
- __pyx_tuple__66 = PyTuple_Pack(1, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 1018, __pyx_L1_error)
+ __pyx_tuple__66 = PyTuple_Pack(1, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__66);
__Pyx_GIVEREF(__pyx_tuple__66);
- __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pytypename, 1018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 1018, __pyx_L1_error)
+ __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pytypename, 1019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 1019, __pyx_L1_error)
- /* "lxml/objectify.pyx":1064
+ /* "lxml/objectify.pyx":1065
* _registerPyTypes()
*
* def getRegisteredTypes(): # <<<<<<<<<<<<<<
* u"""getRegisteredTypes()
*
*/
- __pyx_tuple__68 = PyTuple_Pack(5, __pyx_n_s_types, __pyx_n_s_known, __pyx_n_s_check, __pyx_n_s_pytype, __pyx_n_s_name); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 1064, __pyx_L1_error)
+ __pyx_tuple__68 = PyTuple_Pack(5, __pyx_n_s_types, __pyx_n_s_known, __pyx_n_s_check, __pyx_n_s_pytype, __pyx_n_s_name); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__68);
__Pyx_GIVEREF(__pyx_tuple__68);
- __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_getRegisteredTypes, 1064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 1064, __pyx_L1_error)
+ __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_getRegisteredTypes, 1065, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 1065, __pyx_L1_error)
- /* "lxml/objectify.pyx":1299
+ /* "lxml/objectify.pyx":1300
* cdef bint __RECURSIVE_STR = 0 # default: off
*
* def enable_recursive_str(on=True): # <<<<<<<<<<<<<<
* u"""enable_recursive_str(on=True)
*
*/
- __pyx_tuple__70 = PyTuple_Pack(1, __pyx_n_s_on); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1299, __pyx_L1_error)
+ __pyx_tuple__70 = PyTuple_Pack(1, __pyx_n_s_on); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__70);
__Pyx_GIVEREF(__pyx_tuple__70);
- __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_enable_recursive_str, 1299, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 1299, __pyx_L1_error)
- __pyx_tuple__72 = PyTuple_Pack(1, ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(0, 1299, __pyx_L1_error)
+ __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_enable_recursive_str, 1300, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 1300, __pyx_L1_error)
+ __pyx_tuple__72 = PyTuple_Pack(1, ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(0, 1300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__72);
__Pyx_GIVEREF(__pyx_tuple__72);
- /* "lxml/objectify.pyx":1308
+ /* "lxml/objectify.pyx":1309
* __RECURSIVE_STR = on
*
* def dump(_Element element not None): # <<<<<<<<<<<<<<
* u"""dump(_Element element not None)
*
*/
- __pyx_tuple__73 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1308, __pyx_L1_error)
+ __pyx_tuple__73 = PyTuple_Pack(1, __pyx_n_s_element); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1309, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__73);
__Pyx_GIVEREF(__pyx_tuple__73);
- __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_dump, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1308, __pyx_L1_error)
+ __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_dump, 1309, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1309, __pyx_L1_error)
- /* "lxml/objectify.pyx":1351
+ /* "lxml/objectify.pyx":1352
* # Pickle support for objectified ElementTree
*
* def __unpickleElementTree(data): # <<<<<<<<<<<<<<
* return etree.ElementTree(fromstring(data))
*
*/
- __pyx_tuple__75 = PyTuple_Pack(1, __pyx_n_s_data); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1351, __pyx_L1_error)
+ __pyx_tuple__75 = PyTuple_Pack(1, __pyx_n_s_data); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1352, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__75);
__Pyx_GIVEREF(__pyx_tuple__75);
- __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_unpickleElementTree, 1351, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 1351, __pyx_L1_error)
+ __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_unpickleElementTree, 1352, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 1352, __pyx_L1_error)
- /* "lxml/objectify.pyx":1362
+ /* "lxml/objectify.pyx":1363
* elementTreeReduceFunction, __unpickleElementTree)
*
* def pickleReduceElementTree(obj): # <<<<<<<<<<<<<<
* return __unpickleElementTree, (etree.tostring(obj),)
*
*/
- __pyx_tuple__77 = PyTuple_Pack(1, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 1362, __pyx_L1_error)
+ __pyx_tuple__77 = PyTuple_Pack(1, __pyx_n_s_obj); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 1363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__77);
__Pyx_GIVEREF(__pyx_tuple__77);
- __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pickleReduceElementTree, 1362, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 1362, __pyx_L1_error)
+ __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pickleReduceElementTree, 1363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 1363, __pyx_L1_error)
- /* "lxml/objectify.pyx":1456
+ /* "lxml/objectify.pyx":1457
* return None
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False, # <<<<<<<<<<<<<<
* empty_pytype=None):
* u"""pyannotate(element_or_tree, ignore_old=False, ignore_xsi=False, empty_pytype=None)
*/
- __pyx_tuple__79 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_xsi, __pyx_n_s_empty_pytype, __pyx_n_s_element); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 1456, __pyx_L1_error)
+ __pyx_tuple__79 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_xsi, __pyx_n_s_empty_pytype, __pyx_n_s_element); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 1457, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__79);
__Pyx_GIVEREF(__pyx_tuple__79);
- __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 3, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pyannotate, 1456, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 1456, __pyx_L1_error)
+ __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 3, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_pyannotate, 1457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 1457, __pyx_L1_error)
- /* "lxml/objectify.pyx":1479
+ /* "lxml/objectify.pyx":1480
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False, # <<<<<<<<<<<<<<
* empty_type=None):
* u"""xsiannotate(element_or_tree, ignore_old=False, ignore_pytype=False, empty_type=None)
*/
- __pyx_tuple__81 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_pytype, __pyx_n_s_empty_type, __pyx_n_s_element); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 1479, __pyx_L1_error)
+ __pyx_tuple__81 = PyTuple_Pack(5, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_pytype, __pyx_n_s_empty_type, __pyx_n_s_element); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__81);
__Pyx_GIVEREF(__pyx_tuple__81);
- __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(1, 3, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_xsiannotate, 1479, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 1479, __pyx_L1_error)
+ __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(1, 3, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_xsiannotate, 1480, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 1480, __pyx_L1_error)
- /* "lxml/objectify.pyx":1507
+ /* "lxml/objectify.pyx":1508
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False, # <<<<<<<<<<<<<<
* empty_pytype=None, empty_type=None, annotate_xsi=0,
* annotate_pytype=1):
*/
- __pyx_tuple__83 = PyTuple_Pack(8, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_xsi, __pyx_n_s_empty_pytype, __pyx_n_s_empty_type, __pyx_n_s_annotate_xsi, __pyx_n_s_annotate_pytype, __pyx_n_s_element); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 1507, __pyx_L1_error)
+ __pyx_tuple__83 = PyTuple_Pack(8, __pyx_n_s_element_or_tree, __pyx_n_s_ignore_old, __pyx_n_s_ignore_xsi, __pyx_n_s_empty_pytype, __pyx_n_s_empty_type, __pyx_n_s_annotate_xsi, __pyx_n_s_annotate_pytype, __pyx_n_s_element); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 1508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__83);
__Pyx_GIVEREF(__pyx_tuple__83);
- __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 6, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_annotate, 1507, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 1507, __pyx_L1_error)
+ __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 6, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_annotate, 1508, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 1508, __pyx_L1_error)
- /* "lxml/objectify.pyx":1703
+ /* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
* bint xsi_nil=False, bint cleanup_namespaces=False):
* u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
*/
- __pyx_tuple__85 = PyTuple_Pack(6, __pyx_n_s_element_or_tree, __pyx_n_s_pytype, __pyx_n_s_xsi_2, __pyx_n_s_xsi_nil, __pyx_n_s_cleanup_namespaces, __pyx_n_s_attribute_names); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_tuple__85 = PyTuple_Pack(6, __pyx_n_s_element_or_tree, __pyx_n_s_pytype, __pyx_n_s_xsi_2, __pyx_n_s_xsi_nil, __pyx_n_s_cleanup_namespaces, __pyx_n_s_attribute_names); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__85);
__Pyx_GIVEREF(__pyx_tuple__85);
- __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(1, 4, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_deannotate, 1703, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(1, 4, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_deannotate, 1704, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 1704, __pyx_L1_error)
- /* "lxml/objectify.pyx":1743
+ /* "lxml/objectify.pyx":1744
* objectify_parser = __DEFAULT_PARSER
*
* def set_default_parser(new_parser = None): # <<<<<<<<<<<<<<
* u"""set_default_parser(new_parser = None)
*
*/
- __pyx_tuple__87 = PyTuple_Pack(1, __pyx_n_s_new_parser); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 1743, __pyx_L1_error)
+ __pyx_tuple__87 = PyTuple_Pack(1, __pyx_n_s_new_parser); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 1744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__87);
__Pyx_GIVEREF(__pyx_tuple__87);
- __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_set_default_parser, 1743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 1743, __pyx_L1_error)
- __pyx_tuple__89 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 1743, __pyx_L1_error)
+ __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_set_default_parser, 1744, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 1744, __pyx_L1_error)
+ __pyx_tuple__89 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 1744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__89);
__Pyx_GIVEREF(__pyx_tuple__89);
- /* "lxml/objectify.pyx":1761
+ /* "lxml/objectify.pyx":1762
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
*
* def makeparser(**kw): # <<<<<<<<<<<<<<
* u"""makeparser(remove_blank_text=True, **kw)
*
*/
- __pyx_tuple__90 = PyTuple_Pack(2, __pyx_n_s_kw, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 1761, __pyx_L1_error)
+ __pyx_tuple__90 = PyTuple_Pack(2, __pyx_n_s_kw, __pyx_n_s_parser); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 1762, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__90);
__Pyx_GIVEREF(__pyx_tuple__90);
- __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_makeparser, 1761, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(0, 1761, __pyx_L1_error)
+ __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_makeparser, 1762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(0, 1762, __pyx_L1_error)
- /* "lxml/objectify.pyx":1788
+ /* "lxml/objectify.pyx":1789
* SubElement = etree.SubElement
*
* def fromstring(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""fromstring(xml, parser=None, base_url=None)
*
*/
- __pyx_tuple__92 = PyTuple_Pack(3, __pyx_n_s_xml, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(0, 1788, __pyx_L1_error)
+ __pyx_tuple__92 = PyTuple_Pack(3, __pyx_n_s_xml, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(0, 1789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__92);
__Pyx_GIVEREF(__pyx_tuple__92);
- __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_fromstring, 1788, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(0, 1788, __pyx_L1_error)
- __pyx_tuple__94 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(0, 1788, __pyx_L1_error)
+ __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_fromstring, 1789, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(0, 1789, __pyx_L1_error)
+ __pyx_tuple__94 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(0, 1789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__94);
__Pyx_GIVEREF(__pyx_tuple__94);
- /* "lxml/objectify.pyx":1804
+ /* "lxml/objectify.pyx":1805
* return _fromstring(xml, parser, base_url=base_url)
*
* def XML(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""XML(xml, parser=None, base_url=None)
*
*/
- __pyx_tuple__95 = PyTuple_Pack(3, __pyx_n_s_xml, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 1804, __pyx_L1_error)
+ __pyx_tuple__95 = PyTuple_Pack(3, __pyx_n_s_xml, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 1805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__95);
__Pyx_GIVEREF(__pyx_tuple__95);
- __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_XML, 1804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 1804, __pyx_L1_error)
- __pyx_tuple__97 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 1804, __pyx_L1_error)
+ __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_XML, 1805, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 1805, __pyx_L1_error)
+ __pyx_tuple__97 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 1805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__97);
__Pyx_GIVEREF(__pyx_tuple__97);
- /* "lxml/objectify.pyx":1823
+ /* "lxml/objectify.pyx":1824
* _parse = etree.parse
*
* def parse(f, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(f, parser=None, base_url=None)
*
*/
- __pyx_tuple__98 = PyTuple_Pack(3, __pyx_n_s_f, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 1823, __pyx_L1_error)
+ __pyx_tuple__98 = PyTuple_Pack(3, __pyx_n_s_f, __pyx_n_s_parser, __pyx_n_s_base_url); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 1824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__98);
__Pyx_GIVEREF(__pyx_tuple__98);
- __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_parse, 1823, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 1823, __pyx_L1_error)
- __pyx_tuple__100 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(0, 1823, __pyx_L1_error)
+ __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(2, 1, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_parse, 1824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 1824, __pyx_L1_error)
+ __pyx_tuple__100 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(0, 1824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__100);
__Pyx_GIVEREF(__pyx_tuple__100);
- /* "lxml/objectify.pyx":1846
+ /* "lxml/objectify.pyx":1847
* E = ElementMaker()
*
* def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes): # <<<<<<<<<<<<<<
* u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
*
*/
- __pyx_tuple__101 = PyTuple_Pack(5, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_pytype_2, __pyx_n_s_attributes); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 1846, __pyx_L1_error)
+ __pyx_tuple__101 = PyTuple_Pack(5, __pyx_n_s_tag_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_pytype_2, __pyx_n_s_attributes); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 1847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__101);
__Pyx_GIVEREF(__pyx_tuple__101);
- __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_Element, 1846, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 1846, __pyx_L1_error)
- __pyx_tuple__103 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 1846, __pyx_L1_error)
+ __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_Element, 1847, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 1847, __pyx_L1_error)
+ __pyx_tuple__103 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 1847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__103);
__Pyx_GIVEREF(__pyx_tuple__103);
- /* "lxml/objectify.pyx":1866
+ /* "lxml/objectify.pyx":1867
* return _makeElement(_tag, None, _attributes, nsmap)
*
* def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None, # <<<<<<<<<<<<<<
* **_attributes):
* u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
*/
- __pyx_tuple__104 = PyTuple_Pack(13, __pyx_n_s_value_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_pytype_2, __pyx_n_s_xsi_3, __pyx_n_s_attributes, __pyx_n_s_temp, __pyx_n_s_prefix, __pyx_n_s_name, __pyx_n_s_ns, __pyx_n_s_py_type, __pyx_n_s_strval, __pyx_n_s_stringify); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(0, 1866, __pyx_L1_error)
+ __pyx_tuple__104 = PyTuple_Pack(13, __pyx_n_s_value_2, __pyx_n_s_attrib, __pyx_n_s_nsmap, __pyx_n_s_pytype_2, __pyx_n_s_xsi_3, __pyx_n_s_attributes, __pyx_n_s_temp, __pyx_n_s_prefix, __pyx_n_s_name, __pyx_n_s_ns, __pyx_n_s_py_type, __pyx_n_s_strval, __pyx_n_s_stringify); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(0, 1867, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__104);
__Pyx_GIVEREF(__pyx_tuple__104);
- __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(3, 2, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_DataElement, 1866, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(0, 1866, __pyx_L1_error)
- __pyx_tuple__106 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(0, 1866, __pyx_L1_error)
+ __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(3, 2, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_lxml_objectify_pyx, __pyx_n_s_DataElement, 1867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(0, 1867, __pyx_L1_error)
+ __pyx_tuple__106 = PyTuple_Pack(2, ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(0, 1867, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__106);
__Pyx_GIVEREF(__pyx_tuple__106);
if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NoneElement, (PyObject *)&__pyx_type_4lxml_9objectify_NoneElement) < 0) __PYX_ERR(0, 784, __pyx_L1_error)
__pyx_ptype_4lxml_9objectify_NoneElement = &__pyx_type_4lxml_9objectify_NoneElement;
__pyx_type_4lxml_9objectify_BoolElement.tp_base = __pyx_ptype_4lxml_9objectify_IntElement;
- if (PyType_Ready(&__pyx_type_4lxml_9objectify_BoolElement) < 0) __PYX_ERR(0, 809, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_9objectify_BoolElement) < 0) __PYX_ERR(0, 810, __pyx_L1_error)
__pyx_type_4lxml_9objectify_BoolElement.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_9objectify_BoolElement.tp_dictoffset && __pyx_type_4lxml_9objectify_BoolElement.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_9objectify_BoolElement.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BoolElement, (PyObject *)&__pyx_type_4lxml_9objectify_BoolElement) < 0) __PYX_ERR(0, 809, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BoolElement, (PyObject *)&__pyx_type_4lxml_9objectify_BoolElement) < 0) __PYX_ERR(0, 810, __pyx_L1_error)
__pyx_ptype_4lxml_9objectify_BoolElement = &__pyx_type_4lxml_9objectify_BoolElement;
- if (PyType_Ready(&__pyx_type_4lxml_9objectify_PyType) < 0) __PYX_ERR(0, 895, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_9objectify_PyType) < 0) __PYX_ERR(0, 896, __pyx_L1_error)
__pyx_type_4lxml_9objectify_PyType.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_9objectify_PyType.tp_dictoffset && __pyx_type_4lxml_9objectify_PyType.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_9objectify_PyType.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyType, (PyObject *)&__pyx_type_4lxml_9objectify_PyType) < 0) __PYX_ERR(0, 895, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PyType, (PyObject *)&__pyx_type_4lxml_9objectify_PyType) < 0) __PYX_ERR(0, 896, __pyx_L1_error)
__pyx_ptype_4lxml_9objectify_PyType = &__pyx_type_4lxml_9objectify_PyType;
- if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) __PYX_ERR(0, 1125, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) __PYX_ERR(0, 1126, __pyx_L1_error)
__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller.tp_dictoffset && __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
}
#if CYTHON_COMPILING_IN_CPYTHON
{
- PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1125, __pyx_L1_error)
+ PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1126, __pyx_L1_error)
if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
__pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
__pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__.doc = __pyx_doc_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller = &__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller;
__pyx_vtabptr_4lxml_9objectify_ElementMaker = &__pyx_vtable_4lxml_9objectify_ElementMaker;
__pyx_vtable_4lxml_9objectify_ElementMaker._build_element_maker = (PyObject *(*)(struct __pyx_obj_4lxml_9objectify_ElementMaker *, PyObject *, int))__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker;
- if (PyType_Ready(&__pyx_type_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1215, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1216, __pyx_L1_error)
__pyx_type_4lxml_9objectify_ElementMaker.tp_print = 0;
- if (__Pyx_SetVtable(__pyx_type_4lxml_9objectify_ElementMaker.tp_dict, __pyx_vtabptr_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1215, __pyx_L1_error)
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementMaker, (PyObject *)&__pyx_type_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1215, __pyx_L1_error)
+ if (__Pyx_SetVtable(__pyx_type_4lxml_9objectify_ElementMaker.tp_dict, __pyx_vtabptr_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1216, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ElementMaker, (PyObject *)&__pyx_type_4lxml_9objectify_ElementMaker) < 0) __PYX_ERR(0, 1216, __pyx_L1_error)
__pyx_ptype_4lxml_9objectify_ElementMaker = &__pyx_type_4lxml_9objectify_ElementMaker;
__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup = __Pyx_ImportType(__pyx_t_1, "lxml.etree", "ElementClassLookup", sizeof(struct LxmlElementClassLookup), __Pyx_ImportType_CheckSize_Warn);
if (!__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup) __PYX_ERR(0, 1, __pyx_L1_error)
__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_base = __pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup;
- if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) __PYX_ERR(0, 1371, __pyx_L1_error)
+ if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) __PYX_ERR(0, 1372, __pyx_L1_error)
__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_print = 0;
if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_dictoffset && __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_getattro == PyObject_GenericGetAttr)) {
__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_getattro = __Pyx_PyObject_GenericGetAttr;
}
#if CYTHON_COMPILING_IN_CPYTHON
{
- PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1371, __pyx_L1_error)
+ PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 1372, __pyx_L1_error)
if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
__pyx_wrapperbase_4lxml_9objectify_27ObjectifyElementClassLookup___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;
__pyx_wrapperbase_4lxml_9objectify_27ObjectifyElementClassLookup___init__.doc = __pyx_doc_4lxml_9objectify_27ObjectifyElementClassLookup___init__;
}
}
#endif
- if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ObjectifyElementClassLookup, (PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) __PYX_ERR(0, 1371, __pyx_L1_error)
+ if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ObjectifyElementClassLookup, (PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) __PYX_ERR(0, 1372, __pyx_L1_error)
__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup = &__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup;
if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectPath) < 0) __PYX_ERR(1, 13, __pyx_L1_error)
__pyx_type_4lxml_9objectify_ObjectPath.tp_print = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_9objectify_StringElement);
- /* "lxml/objectify.pyx":815
+ /* "lxml/objectify.pyx":816
* Python's bool type.
* """
* def _init(self): # <<<<<<<<<<<<<<
* self._parse_value = __parseBool
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11BoolElement_1_init, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BoolElement__init, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11BoolElement_1_init, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BoolElement__init, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_BoolElement->tp_dict, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_BoolElement->tp_dict, __pyx_n_s_init, __pyx_t_1) < 0) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_9objectify_BoolElement);
- /* "lxml/objectify.pyx":837
- * return __parseBool(textOf(self._c_node))
+ /* "lxml/objectify.pyx":838
+ * return __parseBool(textOf(self._c_node))
*
* def __checkBool(s): # <<<<<<<<<<<<<<
* cdef int value = -1
* if s is not None:
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, 0, __pyx_n_s_checkBool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 837, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, 0, __pyx_n_s_checkBool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_checkBool, __pyx_t_1) < 0) __PYX_ERR(0, 837, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_checkBool, __pyx_t_1) < 0) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":844
+ /* "lxml/objectify.pyx":845
* raise ValueError
*
* cpdef bint __parseBool(s) except -1: # <<<<<<<<<<<<<<
* cdef int value
* if s is None:
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_5__parseBool, 0, __pyx_n_s_parseBool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_5__parseBool, 0, __pyx_n_s_parseBool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_parseBool, __pyx_t_1) < 0) __PYX_ERR(0, 844, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_parseBool, __pyx_t_1) < 0) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":942
+ /* "lxml/objectify.pyx":943
* return "PyType(%s, %s)" % (self.name, self._type.__name__)
*
* def register(self, before=None, after=None): # <<<<<<<<<<<<<<
* u"""register(self, before=None, after=None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_6PyType_5register, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyType_register, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 942, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_6PyType_5register, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyType_register, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_PyType->tp_dict, __pyx_n_s_register, __pyx_t_1) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_PyType->tp_dict, __pyx_n_s_register, __pyx_t_1) < 0) __PYX_ERR(0, 943, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_9objectify_PyType);
- /* "lxml/objectify.pyx":983
+ /* "lxml/objectify.pyx":984
* _SCHEMA_TYPE_DICT[xs_type] = self
*
* def unregister(self): # <<<<<<<<<<<<<<
* u"unregister(self)"
* if _PYTYPE_DICT.get(self.name) is self:
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_6PyType_7unregister, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyType_unregister, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 983, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_6PyType_7unregister, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PyType_unregister, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_PyType->tp_dict, __pyx_n_s_unregister, __pyx_t_1) < 0) __PYX_ERR(0, 983, __pyx_L1_error)
+ if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_9objectify_PyType->tp_dict, __pyx_n_s_unregister, __pyx_t_1) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
PyType_Modified(__pyx_ptype_4lxml_9objectify_PyType);
- /* "lxml/objectify.pyx":1008
+ /* "lxml/objectify.pyx":1009
*
*
* cdef dict _PYTYPE_DICT = {} # <<<<<<<<<<<<<<
* cdef dict _SCHEMA_TYPE_DICT = {}
* cdef list _TYPE_CHECKS = []
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1008, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__PYTYPE_DICT);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__PYTYPE_DICT, ((PyObject*)__pyx_t_1));
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1009
+ /* "lxml/objectify.pyx":1010
*
* cdef dict _PYTYPE_DICT = {}
* cdef dict _SCHEMA_TYPE_DICT = {} # <<<<<<<<<<<<<<
* cdef list _TYPE_CHECKS = []
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1009, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1010, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, ((PyObject*)__pyx_t_1));
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1010
+ /* "lxml/objectify.pyx":1011
* cdef dict _PYTYPE_DICT = {}
* cdef dict _SCHEMA_TYPE_DICT = {}
* cdef list _TYPE_CHECKS = [] # <<<<<<<<<<<<<<
*
* def __lower_bool(b):
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1010, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1011, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__TYPE_CHECKS);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject*)__pyx_t_1));
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1012
+ /* "lxml/objectify.pyx":1013
* cdef list _TYPE_CHECKS = []
*
* def __lower_bool(b): # <<<<<<<<<<<<<<
* return u"true" if b else u"false"
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, 0, __pyx_n_s_lower_bool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1012, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, 0, __pyx_n_s_lower_bool, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_lower_bool, __pyx_t_1) < 0) __PYX_ERR(0, 1012, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_lower_bool, __pyx_t_1) < 0) __PYX_ERR(0, 1013, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1018
+ /* "lxml/objectify.pyx":1019
* return u"str" if python._isString(obj) else _typename(obj)
*
* def pytypename(obj): # <<<<<<<<<<<<<<
* u"""pytypename(obj)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, 0, __pyx_n_s_pytypename, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1018, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, 0, __pyx_n_s_pytypename, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_pytypename, __pyx_t_1) < 0) __PYX_ERR(0, 1018, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_pytypename, __pyx_t_1) < 0) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1060
+ /* "lxml/objectify.pyx":1061
*
* # non-registered PyType for inner tree elements
* cdef PyType TREE_PYTYPE = PyType(TREE_PYTYPE_NAME, None, ObjectifiedElement) # <<<<<<<<<<<<<<
*
* _registerPyTypes()
*/
- __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1060, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME);
__Pyx_GIVEREF(__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME);
__Pyx_INCREF(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
__Pyx_GIVEREF(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
- __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1060, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4lxml_9objectify_PyType), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1061, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE));
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1062
+ /* "lxml/objectify.pyx":1063
* cdef PyType TREE_PYTYPE = PyType(TREE_PYTYPE_NAME, None, ObjectifiedElement)
*
* _registerPyTypes() # <<<<<<<<<<<<<<
*
* def getRegisteredTypes():
*/
- __pyx_t_2 = __pyx_f_4lxml_9objectify__registerPyTypes(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1062, __pyx_L1_error)
+ __pyx_t_2 = __pyx_f_4lxml_9objectify__registerPyTypes(); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1063, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1064
+ /* "lxml/objectify.pyx":1065
* _registerPyTypes()
*
* def getRegisteredTypes(): # <<<<<<<<<<<<<<
* u"""getRegisteredTypes()
*
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, 0, __pyx_n_s_getRegisteredTypes, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, 0, __pyx_n_s_getRegisteredTypes, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_getRegisteredTypes, __pyx_t_2) < 0) __PYX_ERR(0, 1064, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_getRegisteredTypes, __pyx_t_2) < 0) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1297
+ /* "lxml/objectify.pyx":1298
* # Recursive element dumping
*
* cdef bint __RECURSIVE_STR = 0 # default: off # <<<<<<<<<<<<<<
*/
__pyx_v_4lxml_9objectify___RECURSIVE_STR = 0;
- /* "lxml/objectify.pyx":1299
+ /* "lxml/objectify.pyx":1300
* cdef bint __RECURSIVE_STR = 0 # default: off
*
* def enable_recursive_str(on=True): # <<<<<<<<<<<<<<
* u"""enable_recursive_str(on=True)
*
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, 0, __pyx_n_s_enable_recursive_str, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1299, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, 0, __pyx_n_s_enable_recursive_str, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__72);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_enable_recursive_str, __pyx_t_2) < 0) __PYX_ERR(0, 1299, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_enable_recursive_str, __pyx_t_2) < 0) __PYX_ERR(0, 1300, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1308
+ /* "lxml/objectify.pyx":1309
* __RECURSIVE_STR = on
*
* def dump(_Element element not None): # <<<<<<<<<<<<<<
* u"""dump(_Element element not None)
*
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, 0, __pyx_n_s_dump, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, 0, __pyx_n_s_dump, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1309, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_dump, __pyx_t_2) < 0) __PYX_ERR(0, 1308, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_dump, __pyx_t_2) < 0) __PYX_ERR(0, 1309, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1351
+ /* "lxml/objectify.pyx":1352
* # Pickle support for objectified ElementTree
*
* def __unpickleElementTree(data): # <<<<<<<<<<<<<<
* return etree.ElementTree(fromstring(data))
*
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, 0, __pyx_n_s_unpickleElementTree, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1351, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, 0, __pyx_n_s_unpickleElementTree, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1352, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_unpickleElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 1351, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_unpickleElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 1352, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1362
+ /* "lxml/objectify.pyx":1363
* elementTreeReduceFunction, __unpickleElementTree)
*
* def pickleReduceElementTree(obj): # <<<<<<<<<<<<<<
* return __unpickleElementTree, (etree.tostring(obj),)
*
*/
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, 0, __pyx_n_s_pickleReduceElementTree, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1362, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, 0, __pyx_n_s_pickleReduceElementTree, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1363, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_pickleReduceElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 1362, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_pickleReduceElementTree, __pyx_t_2) < 0) __PYX_ERR(0, 1363, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1365
+ /* "lxml/objectify.pyx":1366
* return __unpickleElementTree, (etree.tostring(obj),)
*
* _setupPickle(pickleReduceElementTree) # <<<<<<<<<<<<<<
* del pickleReduceElementTree
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pickleReduceElementTree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1365, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pickleReduceElementTree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __pyx_f_4lxml_9objectify__setupPickle(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
+ __pyx_t_1 = __pyx_f_4lxml_9objectify__setupPickle(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1366
+ /* "lxml/objectify.pyx":1367
*
* _setupPickle(pickleReduceElementTree)
* del pickleReduceElementTree # <<<<<<<<<<<<<<
*
* ################################################################################
*/
- if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_pickleReduceElementTree) < 0) __PYX_ERR(0, 1366, __pyx_L1_error)
+ if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_pickleReduceElementTree) < 0) __PYX_ERR(0, 1367, __pyx_L1_error)
- /* "lxml/objectify.pyx":1456
+ /* "lxml/objectify.pyx":1457
* return None
*
* def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False, # <<<<<<<<<<<<<<
* empty_pytype=None):
* u"""pyannotate(element_or_tree, ignore_old=False, ignore_xsi=False, empty_pytype=None)
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1456, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1457, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_old, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_xsi, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_pytype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, 0, __pyx_n_s_pyannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1456, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_old, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1457, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_xsi, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1457, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_pytype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1457, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, 0, __pyx_n_s_pyannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1457, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyannotate, __pyx_t_2) < 0) __PYX_ERR(0, 1456, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyannotate, __pyx_t_2) < 0) __PYX_ERR(0, 1457, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1479
+ /* "lxml/objectify.pyx":1480
* _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
*
* def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False, # <<<<<<<<<<<<<<
* empty_type=None):
* u"""xsiannotate(element_or_tree, ignore_old=False, ignore_pytype=False, empty_type=None)
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1479, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ignore_old, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ignore_pytype, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_empty_type, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, 0, __pyx_n_s_xsiannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1479, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ignore_old, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_ignore_pytype, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_empty_type, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, 0, __pyx_n_s_xsiannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_xsiannotate, __pyx_t_1) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_xsiannotate, __pyx_t_1) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1507
+ /* "lxml/objectify.pyx":1508
* _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
*
* def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False, # <<<<<<<<<<<<<<
* empty_pytype=None, empty_type=None, annotate_xsi=0,
* annotate_pytype=1):
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_old, ((PyObject *)Py_True)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_xsi, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_pytype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_type, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotate_xsi, ((PyObject *)__pyx_int_0)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotate_pytype, ((PyObject *)__pyx_int_1)) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, 0, __pyx_n_s_annotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1507, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_old, ((PyObject *)Py_True)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ignore_xsi, ((PyObject *)Py_False)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_pytype, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_empty_type, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotate_xsi, ((PyObject *)__pyx_int_0)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_annotate_pytype, ((PyObject *)__pyx_int_1)) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, 0, __pyx_n_s_annotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_annotate, __pyx_t_2) < 0) __PYX_ERR(0, 1507, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_annotate, __pyx_t_2) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1700
+ /* "lxml/objectify.pyx":1701
* return 0
*
* cdef object _strip_attributes = etree.strip_attributes # <<<<<<<<<<<<<<
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_strip_attributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1700, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_strip_attributes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__strip_attributes);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__strip_attributes, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1701
+ /* "lxml/objectify.pyx":1702
*
* cdef object _strip_attributes = etree.strip_attributes
* cdef object _cleanup_namespaces = etree.cleanup_namespaces # <<<<<<<<<<<<<<
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_cleanup_namespaces); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1701, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_cleanup_namespaces); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__cleanup_namespaces);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__cleanup_namespaces, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1703
+ /* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
* bint xsi_nil=False, bint cleanup_namespaces=False):
* u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pytype, __pyx_t_1) < 0) __PYX_ERR(0, 1703, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pytype, __pyx_t_1) < 0) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_2, __pyx_t_1) < 0) __PYX_ERR(0, 1703, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_2, __pyx_t_1) < 0) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1704
+ /* "lxml/objectify.pyx":1705
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
* bint xsi_nil=False, bint cleanup_namespaces=False): # <<<<<<<<<<<<<<
* u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
*
*/
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_nil, __pyx_t_1) < 0) __PYX_ERR(0, 1703, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_nil, __pyx_t_1) < 0) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cleanup_namespaces, __pyx_t_1) < 0) __PYX_ERR(0, 1703, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_cleanup_namespaces, __pyx_t_1) < 0) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1703
+ /* "lxml/objectify.pyx":1704
* cdef object _cleanup_namespaces = etree.cleanup_namespaces
*
* def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True, # <<<<<<<<<<<<<<
* bint xsi_nil=False, bint cleanup_namespaces=False):
* u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, 0, __pyx_n_s_deannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1703, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, 0, __pyx_n_s_deannotate, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_deannotate, __pyx_t_1) < 0) __PYX_ERR(0, 1703, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_deannotate, __pyx_t_1) < 0) __PYX_ERR(0, 1704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1737
+ /* "lxml/objectify.pyx":1738
*
* cdef object __DEFAULT_PARSER
* __DEFAULT_PARSER = etree.XMLParser(remove_blank_text=True) # <<<<<<<<<<<<<<
* __DEFAULT_PARSER.set_element_class_lookup( ObjectifyElementClassLookup() )
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1737, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_XMLParser); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1737, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_remove_blank_text, Py_True) < 0) __PYX_ERR(0, 1737, __pyx_L1_error)
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1737, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_remove_blank_text, Py_True) < 0) __PYX_ERR(0, 1738, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
- /* "lxml/objectify.pyx":1738
+ /* "lxml/objectify.pyx":1739
* cdef object __DEFAULT_PARSER
* __DEFAULT_PARSER = etree.XMLParser(remove_blank_text=True)
* __DEFAULT_PARSER.set_element_class_lookup( ObjectifyElementClassLookup() ) # <<<<<<<<<<<<<<
*
* cdef object objectify_parser
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_set_element_class_lookup); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1738, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_set_element_class_lookup); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1738, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1738, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1739, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1741
+ /* "lxml/objectify.pyx":1742
*
* cdef object objectify_parser
* objectify_parser = __DEFAULT_PARSER # <<<<<<<<<<<<<<
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_4lxml_9objectify___DEFAULT_PARSER);
__Pyx_GIVEREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
- /* "lxml/objectify.pyx":1743
+ /* "lxml/objectify.pyx":1744
* objectify_parser = __DEFAULT_PARSER
*
* def set_default_parser(new_parser = None): # <<<<<<<<<<<<<<
* u"""set_default_parser(new_parser = None)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, 0, __pyx_n_s_set_default_parser, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1743, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, 0, __pyx_n_s_set_default_parser, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__89);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_default_parser, __pyx_t_1) < 0) __PYX_ERR(0, 1743, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_default_parser, __pyx_t_1) < 0) __PYX_ERR(0, 1744, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1761
+ /* "lxml/objectify.pyx":1762
* raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
*
* def makeparser(**kw): # <<<<<<<<<<<<<<
* u"""makeparser(remove_blank_text=True, **kw)
*
*/
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, 0, __pyx_n_s_makeparser, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1761, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, 0, __pyx_n_s_makeparser, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1762, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_makeparser, __pyx_t_1) < 0) __PYX_ERR(0, 1761, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_makeparser, __pyx_t_1) < 0) __PYX_ERR(0, 1762, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1784
+ /* "lxml/objectify.pyx":1785
*
* cdef object _fromstring
* _fromstring = etree.fromstring # <<<<<<<<<<<<<<
*
* SubElement = etree.SubElement
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_fromstring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1784, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_fromstring); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1785, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__fromstring);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1786
+ /* "lxml/objectify.pyx":1787
* _fromstring = etree.fromstring
*
* SubElement = etree.SubElement # <<<<<<<<<<<<<<
*
* def fromstring(xml, parser=None, *, base_url=None):
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_SubElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_SubElement); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1787, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_SubElement, __pyx_t_1) < 0) __PYX_ERR(0, 1786, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_SubElement, __pyx_t_1) < 0) __PYX_ERR(0, 1787, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1788
+ /* "lxml/objectify.pyx":1789
* SubElement = etree.SubElement
*
* def fromstring(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""fromstring(xml, parser=None, base_url=None)
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1788, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1788, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, 0, __pyx_n_s_fromstring, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1788, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1789, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, 0, __pyx_n_s_fromstring, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1789, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__94);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstring, __pyx_t_2) < 0) __PYX_ERR(0, 1788, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_fromstring, __pyx_t_2) < 0) __PYX_ERR(0, 1789, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1804
+ /* "lxml/objectify.pyx":1805
* return _fromstring(xml, parser, base_url=base_url)
*
* def XML(xml, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""XML(xml, parser=None, base_url=None)
*
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1804, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1804, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, 0, __pyx_n_s_XML, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1804, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1805, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, 0, __pyx_n_s_XML, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__97);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_XML, __pyx_t_1) < 0) __PYX_ERR(0, 1804, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_XML, __pyx_t_1) < 0) __PYX_ERR(0, 1805, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1821
+ /* "lxml/objectify.pyx":1822
*
* cdef object _parse
* _parse = etree.parse # <<<<<<<<<<<<<<
*
* def parse(f, parser=None, *, base_url=None):
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_parse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1821, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s_parse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1822, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__parse);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__parse, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1823
+ /* "lxml/objectify.pyx":1824
* _parse = etree.parse
*
* def parse(f, parser=None, *, base_url=None): # <<<<<<<<<<<<<<
* u"""parse(f, parser=None, base_url=None)
*
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1823, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1823, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, 0, __pyx_n_s_parse, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1823, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_base_url, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1824, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, 0, __pyx_n_s_parse, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__100);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse, __pyx_t_2) < 0) __PYX_ERR(0, 1823, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_parse, __pyx_t_2) < 0) __PYX_ERR(0, 1824, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1839
+ /* "lxml/objectify.pyx":1840
*
* cdef dict _DEFAULT_NSMAP = {
* "py" : PYTYPE_NAMESPACE, # <<<<<<<<<<<<<<
* "xsi" : XML_SCHEMA_INSTANCE_NS,
* "xsd" : XML_SCHEMA_NS
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1839, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_py_2, __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE) < 0) __PYX_ERR(0, 1839, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_py_2, __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE) < 0) __PYX_ERR(0, 1840, __pyx_L1_error)
- /* "lxml/objectify.pyx":1840
+ /* "lxml/objectify.pyx":1841
* cdef dict _DEFAULT_NSMAP = {
* "py" : PYTYPE_NAMESPACE,
* "xsi" : XML_SCHEMA_INSTANCE_NS, # <<<<<<<<<<<<<<
* "xsd" : XML_SCHEMA_NS
* }
*/
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS) < 0) __PYX_ERR(0, 1839, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsi_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS) < 0) __PYX_ERR(0, 1840, __pyx_L1_error)
- /* "lxml/objectify.pyx":1841
+ /* "lxml/objectify.pyx":1842
* "py" : PYTYPE_NAMESPACE,
* "xsi" : XML_SCHEMA_INSTANCE_NS,
* "xsd" : XML_SCHEMA_NS # <<<<<<<<<<<<<<
* }
*
*/
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsd_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS) < 0) __PYX_ERR(0, 1839, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_xsd_2, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS) < 0) __PYX_ERR(0, 1840, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
__Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP, ((PyObject*)__pyx_t_2));
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1844
+ /* "lxml/objectify.pyx":1845
* }
*
* E = ElementMaker() # <<<<<<<<<<<<<<
*
* def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes):
*/
- __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ElementMaker)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1844, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4lxml_9objectify_ElementMaker)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_E, __pyx_t_2) < 0) __PYX_ERR(0, 1844, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_E, __pyx_t_2) < 0) __PYX_ERR(0, 1845, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "lxml/objectify.pyx":1846
+ /* "lxml/objectify.pyx":1847
* E = ElementMaker()
*
* def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes): # <<<<<<<<<<<<<<
* u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
*
*/
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1846, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pytype_2, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1846, __pyx_L1_error)
- __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, 0, __pyx_n_s_Element, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1846, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_pytype_2, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1847, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, 0, __pyx_n_s_Element, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1847, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__103);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_Element, __pyx_t_1) < 0) __PYX_ERR(0, 1846, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_Element, __pyx_t_1) < 0) __PYX_ERR(0, 1847, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "lxml/objectify.pyx":1866
+ /* "lxml/objectify.pyx":1867
* return _makeElement(_tag, None, _attributes, nsmap)
*
* def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None, # <<<<<<<<<<<<<<
* **_attributes):
* u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1866, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1867, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pytype_2, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1866, __pyx_L1_error)
- if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_xsi_3, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1866, __pyx_L1_error)
- __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, 0, __pyx_n_s_DataElement, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1866, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pytype_2, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1867, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_xsi_3, ((PyObject *)Py_None)) < 0) __PYX_ERR(0, 1867, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, 0, __pyx_n_s_DataElement, NULL, __pyx_n_s_lxml_objectify, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1867, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__106);
__Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (PyDict_SetItem(__pyx_d, __pyx_n_s_DataElement, __pyx_t_2) < 0) __PYX_ERR(0, 1866, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_d, __pyx_n_s_DataElement, __pyx_t_2) < 0) __PYX_ERR(0, 1867, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* "src/lxml/objectpath.pxi":10
#endif
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#else
#include <stdint.h>
#endif
+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+#define GCC_DIAGNOSTIC
+#endif
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
char digits[sizeof(Py_ssize_t)*3+2];
char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
Py_ssize_t length, ulength;
int prepend_sign, last_one_off;
Py_ssize_t remaining;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
-#ifdef __GNUC__
+#ifdef GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
const int is_unsigned = neg_one > const_zero;
def __reduce__(self):
return fromstring, (etree.tostring(self),)
- property text:
- def __get__(self):
- return textOf(self._c_node)
+ @property
+ def text(self):
+ return textOf(self._c_node)
- property __dict__:
- u"""A fake implementation for __dict__ to support dir() etc.
+ @property
+ def __dict__(self):
+ """A fake implementation for __dict__ to support dir() etc.
Note that this only considers the first child with a given name.
"""
- def __get__(self):
- cdef _Element child
- cdef dict children
- c_ns = tree._getNs(self._c_node)
- tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
- children = {}
- for child in etree.ElementChildIterator(self, tag=tag):
- if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
- continue
- name = pyunicode(child._c_node.name)
- if name not in children:
- children[name] = child
- return children
+ cdef _Element child
+ cdef dict children
+ c_ns = tree._getNs(self._c_node)
+ tag = u"{%s}*" % pyunicode(c_ns) if c_ns is not NULL else None
+ children = {}
+ for child in etree.ElementChildIterator(self, tag=tag):
+ if c_ns is NULL and tree._getNs(child._c_node) is not NULL:
+ continue
+ name = pyunicode(child._c_node.name)
+ if name not in children:
+ children[name] = child
+ return children
def __len__(self):
u"""Count self and siblings with the same tag.
u"""This is the base class for all data type Elements. Subclasses should
override the 'pyval' property and possibly the __str__ method.
"""
- property pyval:
- def __get__(self):
- return textOf(self._c_node)
+ @property
+ def pyval(self):
+ return textOf(self._c_node)
def __str__(self):
return textOf(self._c_node) or ''
"""
self._parse_value = function
- property pyval:
- def __get__(self):
- return _parseNumber(self)
+ @property
+ def pyval(self):
+ return _parseNumber(self)
def __int__(self):
return int(_parseNumber(self))
len(), iter(), str_attr[0], str_attr[0:1], etc. are *not* supported.
Instead, use the .text attribute to get a 'real' string.
"""
- property pyval:
- def __get__(self):
- return textOf(self._c_node) or u''
+ @property
+ def pyval(self):
+ return textOf(self._c_node) or u''
def __repr__(self):
return repr(textOf(self._c_node) or u'')
def __hash__(self):
return hash(None)
- property pyval:
- def __get__(self):
- return None
+ @property
+ def pyval(self):
+ return None
+
cdef class BoolElement(IntElement):
u"""Boolean type base on string values: 'true' or 'false'.
def __repr__(self):
return repr(__parseBool(textOf(self._c_node)))
- property pyval:
- def __get__(self):
- return __parseBool(textOf(self._c_node))
+ @property
+ def pyval(self):
+ return __parseBool(textOf(self._c_node))
def __checkBool(s):
cdef int value = -1
_forwardParserError(<xmlparser.xmlParserCtxt*>c_context, error)
cdef int _raiseParseError(xmlparser.xmlParserCtxt* ctxt, filename,
- _ErrorLog error_log) except 0:
+ _ErrorLog error_log) except -1:
if filename is not None and \
ctxt.lastError.domain == xmlerror.XML_FROM_IO:
if isinstance(filename, bytes):
c_ctxt.sax.startDocument = _initSaxDocument
return c_ctxt
- property error_log:
- u"""The error log of the last parser run.
+ @property
+ def error_log(self):
+ """The error log of the last parser run.
"""
- def __get__(self):
- cdef _ParserContext context
- context = self._getParserContext()
- return context._error_log.copy()
+ cdef _ParserContext context
+ context = self._getParserContext()
+ return context._error_log.copy()
- property resolvers:
- u"The custom resolver registry of this parser."
- def __get__(self):
- return self._resolvers
+ @property
+ def resolvers(self):
+ """The custom resolver registry of this parser."""
+ return self._resolvers
- property version:
- u"The version of the underlying XML parser."
- def __get__(self):
- return u"libxml2 %d.%d.%d" % LIBXML_VERSION
+ @property
+ def version(self):
+ """The version of the underlying XML parser."""
+ return u"libxml2 %d.%d.%d" % LIBXML_VERSION
def setElementClassLookup(self, ElementClassLookup lookup = None):
u":deprecated: use ``parser.set_element_class_lookup(lookup)`` instead."
cdef class _FeedParser(_BaseParser):
cdef bint _feed_parser_running
- property feed_error_log:
- u"""The error log of the last (or current) run of the feed parser.
+ @property
+ def feed_error_log(self):
+ """The error log of the last (or current) run of the feed parser.
Note that this is local to the feed parser and thus is
different from what the ``error_log`` property returns.
"""
- def __get__(self):
- return self._getPushParserContext()._error_log.copy()
+ return self._getPushParserContext()._error_log.copy()
cpdef feed(self, data):
u"""feed(self, data)
c_start_node = c_element
tree.BEGIN_FOR_EACH_FROM(c_element, c_element, 1)
- # 0) set C doc link
- c_element.doc = c_doc
-
if tree._isElementOrXInclude(c_element):
if hasProxy(c_element):
proxy_count += 1
while c_node is not NULL:
if c_node.ns is not NULL:
_fixCNs(doc, c_start_node, c_node, &c_ns_cache, c_del_ns_list)
-
- # remove attribute from ID table (see xmlSetTreeDoc() in libxml2's tree.c)
- c_attr = <tree.xmlAttr*>c_node
- if c_attr.atype == tree.XML_ATTRIBUTE_ID:
- tree.xmlRemoveID(c_source_doc, c_attr)
- # set C doc link also for attributes
- c_node.doc = c_doc
- _fixDocChildren(c_node.children, c_doc)
c_node = c_node.next
tree.END_FOR_EACH_FROM(c_element)
return 0
+cdef void _setTreeDoc(xmlNode* c_node, xmlDoc* c_doc):
+ """Adaptation of 'xmlSetTreeDoc()' that deep-fix the document links iteratively.
+ It avoids https://gitlab.gnome.org/GNOME/libxml2/issues/42
+ """
+ tree.BEGIN_FOR_EACH_FROM(c_node, c_node, 1)
+ if c_node.type == tree.XML_ELEMENT_NODE:
+ c_attr = <tree.xmlAttr*>c_node.properties
+ while c_attr:
+ if c_attr.atype == tree.XML_ATTRIBUTE_ID:
+ tree.xmlRemoveID(c_node.doc, c_attr)
+ c_attr.doc = c_doc
+ _fixDocChildren(c_attr.children, c_doc)
+ c_attr = c_attr.next
+ # Set doc link for all nodes, not only elements.
+ c_node.doc = c_doc
+ tree.END_FOR_EACH_FROM(c_node)
+
+
cdef inline void _fixDocChildren(xmlNode* c_child, xmlDoc* c_doc):
while c_child:
c_child.doc = c_doc
- _fixDocChildren(c_child.children, c_doc)
+ if c_child.children:
+ _fixDocChildren(c_child.children, c_doc)
c_child = c_child.next
"""
self._free_after_use = 1
- property tag:
- u"""Element tag
+ @property
+ def tag(self):
+ """Element tag
"""
- def __get__(self):
- self._assertNode()
- if self._c_node.type == tree.XML_ELEMENT_NODE:
- return _namespacedName(self._c_node)
- elif self._c_node.type == tree.XML_PI_NODE:
- return ProcessingInstruction
- elif self._c_node.type == tree.XML_COMMENT_NODE:
- return Comment
- elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- return Entity
- else:
- self._raise_unsupported_type()
+ self._assertNode()
+ if self._c_node.type == tree.XML_ELEMENT_NODE:
+ return _namespacedName(self._c_node)
+ elif self._c_node.type == tree.XML_PI_NODE:
+ return ProcessingInstruction
+ elif self._c_node.type == tree.XML_COMMENT_NODE:
+ return Comment
+ elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ return Entity
+ else:
+ self._raise_unsupported_type()
- property text:
- u"""Text before the first subelement. This is either a string or
+ @property
+ def text(self):
+ """Text before the first subelement. This is either a string or
the value None, if there was no text.
"""
- def __get__(self):
- self._assertNode()
- if self._c_node.type == tree.XML_ELEMENT_NODE:
- return _collectText(self._c_node.children)
- elif self._c_node.type in (tree.XML_PI_NODE,
- tree.XML_COMMENT_NODE):
- if self._c_node.content is NULL:
- return ''
- else:
- return funicode(self._c_node.content)
- elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
- return f'&{funicode(self._c_node.name)};'
+ self._assertNode()
+ if self._c_node.type == tree.XML_ELEMENT_NODE:
+ return _collectText(self._c_node.children)
+ elif self._c_node.type in (tree.XML_PI_NODE,
+ tree.XML_COMMENT_NODE):
+ if self._c_node.content is NULL:
+ return ''
else:
- self._raise_unsupported_type()
+ return funicode(self._c_node.content)
+ elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
+ return f'&{funicode(self._c_node.name)};'
+ else:
+ self._raise_unsupported_type()
- property tail:
- u"""Text after this element's end tag, but before the next sibling
+ @property
+ def tail(self):
+ """Text after this element's end tag, but before the next sibling
element's start tag. This is either a string or the value None, if
there was no text.
"""
- def __get__(self):
- self._assertNode()
- return _collectText(self._c_node.next)
+ self._assertNode()
+ return _collectText(self._c_node.next)
- property sourceline:
- u"""Original line number as found by the parser or None if unknown.
+ @property
+ def sourceline(self):
+ """Original line number as found by the parser or None if unknown.
"""
- def __get__(self):
- cdef long line
- self._assertNode()
- line = tree.xmlGetLineNo(self._c_node)
- if line > 0:
- return line
- else:
- return None
+ cdef long line
+ self._assertNode()
+ line = tree.xmlGetLineNo(self._c_node)
+ if line > 0:
+ return line
+ else:
+ return None
def __repr__(self):
self._assertNode()
@cython.final
@cython.internal
cdef class _ReadOnlyPIProxy(_ReadOnlyProxy):
- u"A read-only proxy for processing instructions (for internal use only!)"
- property target:
- def __get__(self):
- self._assertNode()
- return funicode(self._c_node.name)
+ """A read-only proxy for processing instructions (for internal use only!)"""
+ @property
+ def target(self):
+ self._assertNode()
+ return funicode(self._c_node.name)
@cython.final
@cython.internal
cdef class _ReadOnlyEntityProxy(_ReadOnlyProxy):
- u"A read-only proxy for entity references (for internal use only!)"
+ """A read-only proxy for entity references (for internal use only!)"""
property name:
def __get__(self):
return funicode(self._c_node.name)
raise ValueError(f"Invalid entity name '{value}'")
tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
- property text:
- def __get__(self):
- return f'&{funicode(self._c_node.name)};'
+ @property
+ def text(self):
+ return f'&{funicode(self._c_node.name)};'
@cython.internal
cdef class _ReadOnlyElementProxy(_ReadOnlyProxy):
- u"The main read-only Element proxy class (for internal use only!)."
+ """The main read-only Element proxy class (for internal use only!)."""
- property attrib:
- def __get__(self):
- self._assertNode()
- return dict(_collectAttributes(self._c_node, 3))
+ @property
+ def attrib(self):
+ self._assertNode()
+ return dict(_collectAttributes(self._c_node, 3))
- property prefix:
- u"""Namespace prefix or None.
+ @property
+ def prefix(self):
+ """Namespace prefix or None.
"""
- def __get__(self):
- self._assertNode()
- if self._c_node.ns is not NULL:
- if self._c_node.ns.prefix is not NULL:
- return funicode(self._c_node.ns.prefix)
- return None
+ self._assertNode()
+ if self._c_node.ns is not NULL:
+ if self._c_node.ns.prefix is not NULL:
+ return funicode(self._c_node.ns.prefix)
+ return None
def get(self, key, default=None):
u"""Gets an element attribute.
@cython.final
@cython.internal
cdef class _ModifyContentOnlyPIProxy(_ModifyContentOnlyProxy):
- u"""A read-only proxy that allows changing the text/target content of a
+ """A read-only proxy that allows changing the text/target content of a
processing instruction.
"""
property target:
@cython.final
@cython.internal
cdef class _ModifyContentOnlyEntityProxy(_ModifyContentOnlyProxy):
- u"A read-only proxy for entity references (for internal use only!)"
+ "A read-only proxy for entity references (for internal use only!)"
property name:
def __get__(self):
return funicode(self._c_node.name)
self.append(element)
property text:
- u"""Text before the first subelement. This is either a string or the
+ """Text before the first subelement. This is either a string or the
value None, if there was no text.
"""
def __get__(self):
-/* Generated by Cython 0.29.5 */
+/* Generated by Cython 0.29.6 */
/* BEGIN: Cython Metadata
{
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
#error Cython requires Python 2.6+ or Python 3.3+.
#else
-#define CYTHON_ABI "0_29_5"
-#define CYTHON_HEX_VERSION 0x001D05F0
+#define CYTHON_ABI "0_29_6"
+#define CYTHON_HEX_VERSION 0x001D06F0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
-#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
/* PyDictVersioning.proto */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
}
/* PyDictVersioning */
-#if CYTHON_USE_DICT_VERSIONS
+#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- return dict ? __PYX_GET_DICT_VERSION(dict) : 0;
+ return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
PyObject **dictptr = NULL;
Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
if (offset) {
- dictptr = (offset > 0) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#if CYTHON_COMPILING_IN_CPYTHON
+ dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
+#else
+ dictptr = _PyObject_GetDictPtr(obj);
+#endif
}
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
PyObject *dict = Py_TYPE(obj)->tp_dict;
- if (!dict || tp_dict_version != __PYX_GET_DICT_VERSION(dict))
+ if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
return 0;
return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
result.append(el.tag)
self.assertEqual([], result)
- def test_iteration_crash(self):
+ def test_iteration_set_tail_empty(self):
# this would cause a crash in the past
fromstring = self.etree.fromstring
- root = etree.fromstring('<html><p></p>x</html>')
+ root = fromstring('<html><p></p>x</html>')
for elem in root:
elem.tail = ''
+ def test_iteration_clear_tail(self):
+ # this would cause a crash in the past
+ fromstring = self.etree.fromstring
+ root = fromstring('<html><p></p>x</html>')
+ for elem in root:
+ elem.tail = None
+
def test_iteration_reversed(self):
XML = self.etree.XML
root = XML(_bytes('<doc><one/><two>Two</two>Hm<three/></doc>'))
a)
self.assertEqual('b2', b.tail)
- def _test_getchildren(self):
+ def test_remove_while_iterating(self):
+ # There is no guarantee that this "works", but it should
+ # remove at least one child and not crash.
+ Element = self.etree.Element
+ SubElement = self.etree.SubElement
+
+ a = Element('a')
+ SubElement(a, 'b')
+ SubElement(a, 'c')
+ SubElement(a, 'd')
+ for el in a:
+ a.remove(el)
+ self.assertLess(len(a), 3)
+
+ def test_getchildren(self):
Element = self.etree.Element
SubElement = self.etree.SubElement
[d],
list(d.iter()))
+ def test_iter_remove_tail(self):
+ Element = self.etree.Element
+ SubElement = self.etree.SubElement
+
+ a = Element('a')
+ a.text = 'a'
+ a.tail = 'a1' * 100
+ b = SubElement(a, 'b')
+ b.text = 'b'
+ b.tail = 'b1' * 100
+ c = SubElement(a, 'c')
+ c.text = 'c'
+ c.tail = 'c1' * 100
+ d = SubElement(b, 'd')
+ d.text = 'd'
+ d.tail = 'd1' * 100
+ e = SubElement(c, 'e')
+ e.text = 'e'
+ e.tail = 'e1' * 100
+
+ for el in a.iter():
+ el.tail = None
+ el = None
+
+ self.assertEqual(
+ [None] * 5,
+ [el.tail for el in a.iter()])
+
def test_getiterator(self):
Element = self.etree.Element
SubElement = self.etree.SubElement
c.text = 'c'
c.tail = 'c1'
d = SubElement(b, 'd')
- c.text = 'd'
- c.tail = 'd1'
+ d.text = 'd'
+ d.tail = 'd1'
e = SubElement(c, 'e')
e.text = 'e'
e.tail = 'e1'
c.text = 'c'
c.tail = 'c1'
d = SubElement(b, 'd')
- c.text = 'd'
- c.tail = 'd1'
+ d.text = 'd'
+ d.tail = 'd1'
e = SubElement(c, 'e')
e.text = 'e'
e.tail = 'e1'
def __init__(self):
self._error_log = _ErrorLog()
- property error_log:
- def __get__(self):
- assert self._error_log is not None, "XInclude instance not initialised"
- return self._error_log.copy()
+ @property
+ def error_log(self):
+ assert self._error_log is not None, "XInclude instance not initialised"
+ return self._error_log.copy()
def __call__(self, _Element node not None):
u"__call__(self, node)"
self.filename, self.line, self.column, self.level_name,
self.domain_name, self.type_name, self.message)
- property domain_name:
+ @property
+ def domain_name(self):
"""The name of the error domain. See lxml.etree.ErrorDomains
"""
- def __get__(self):
- return ErrorDomains._getName(self.domain, u"unknown")
+ return ErrorDomains._getName(self.domain, u"unknown")
- property type_name:
+ @property
+ def type_name(self):
"""The name of the error type. See lxml.etree.ErrorTypes
"""
- def __get__(self):
- if self.domain == ErrorDomains.RELAXNGV:
- getName = RelaxNGErrorTypes._getName
- else:
- getName = ErrorTypes._getName
- return getName(self.type, u"unknown")
+ if self.domain == ErrorDomains.RELAXNGV:
+ getName = RelaxNGErrorTypes._getName
+ else:
+ getName = ErrorTypes._getName
+ return getName(self.type, u"unknown")
- property level_name:
+ @property
+ def level_name(self):
"""The name of the error level. See lxml.etree.ErrorLevels
"""
- def __get__(self):
- return ErrorLevels._getName(self.level, u"unknown")
-
- property message:
- def __get__(self):
- cdef size_t size
- if self._message is not None:
- return self._message
- if self._c_message is NULL:
- return None
- size = cstring_h.strlen(self._c_message)
- if size > 0 and self._c_message[size-1] == '\n':
- size -= 1 # strip EOL
- # cannot use funicode() here because the message may contain
- # byte encoded file paths etc.
+ return ErrorLevels._getName(self.level, u"unknown")
+
+ @property
+ def message(self):
+ """The log message string.
+ """
+ cdef size_t size
+ if self._message is not None:
+ return self._message
+ if self._c_message is NULL:
+ return None
+ size = cstring_h.strlen(self._c_message)
+ if size > 0 and self._c_message[size-1] == '\n':
+ size -= 1 # strip EOL
+ # cannot use funicode() here because the message may contain
+ # byte encoded file paths etc.
+ try:
+ self._message = self._c_message[:size].decode('utf8')
+ except UnicodeDecodeError:
try:
- self._message = self._c_message[:size].decode('utf8')
+ self._message = self._c_message[:size].decode(
+ 'ascii', 'backslashreplace')
except UnicodeDecodeError:
- try:
- self._message = self._c_message[:size].decode(
- 'ascii', 'backslashreplace')
- except UnicodeDecodeError:
- self._message = u'<undecodable error message>'
- if self._c_message:
+ self._message = u'<undecodable error message>'
+ if self._c_message:
+ # clean up early
+ tree.xmlFree(self._c_message)
+ self._c_message = NULL
+ return self._message
+
+ @property
+ def filename(self):
+ """The file path where the report originated, if any.
+ """
+ if self._filename is None:
+ if self._c_filename is not NULL:
+ self._filename = _decodeFilename(self._c_filename)
# clean up early
- tree.xmlFree(self._c_message)
- self._c_message = NULL
- return self._message
+ tree.xmlFree(self._c_filename)
+ self._c_filename = NULL
+ return self._filename
- property filename:
- def __get__(self):
- if self._filename is None:
- if self._c_filename is not NULL:
- self._filename = _decodeFilename(self._c_filename)
- # clean up early
- tree.xmlFree(self._c_filename)
- self._c_filename = NULL
- return self._filename
-
- property path:
+ @property
+ def path(self):
"""The XPath for the node where the error was detected.
"""
- def __get__(self):
- return funicode(self._c_path) if self._c_path is not NULL else None
+ return funicode(self._c_path) if self._c_path is not NULL else None
cdef class _BaseErrorLog:
self._context = _XPathContext(namespaces, extensions, self._error_log,
enable_regexp, None, smart_strings)
- property error_log:
- def __get__(self):
- assert self._error_log is not None, "XPath evaluator not initialised"
- return self._error_log.copy()
+ @property
+ def error_log(self):
+ assert self._error_log is not None, "XPath evaluator not initialised"
+ return self._error_log.copy()
def __dealloc__(self):
if self._xpathCtxt is not NULL:
self._unlock()
return result
- property path:
- u"""The literal XPath expression.
+ @property
+ def path(self):
+ """The literal XPath expression.
"""
- def __get__(self):
- return self._path.decode(u'UTF-8')
+ return self._path.decode(u'UTF-8')
def __dealloc__(self):
if self._xpath is not NULL:
cdef void _register_in_context(self, xslt.xsltTransformContext* ctxt):
xslt.xsltSetCtxtSecurityPrefs(self._prefs, ctxt)
- property options:
- u"The access control configuration as a map of options."
- def __get__(self):
- return {
- u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
- u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
- u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
- u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
- u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
- }
+ @property
+ def options(self):
+ """The access control configuration as a map of options."""
+ return {
+ u'read_file': self._optval(xslt.XSLT_SECPREF_READ_FILE),
+ u'write_file': self._optval(xslt.XSLT_SECPREF_WRITE_FILE),
+ u'create_dir': self._optval(xslt.XSLT_SECPREF_CREATE_DIRECTORY),
+ u'read_network': self._optval(xslt.XSLT_SECPREF_READ_NETWORK),
+ u'write_network': self._optval(xslt.XSLT_SECPREF_WRITE_NETWORK),
+ }
@cython.final
cdef _optval(self, xslt.xsltSecurityOption option):
if self._c_style is not NULL:
xslt.xsltFreeStylesheet(self._c_style)
- property error_log:
- u"The log of errors and warnings of an XSLT execution."
- def __get__(self):
- return self._error_log.copy()
+ @property
+ def error_log(self):
+ """The log of errors and warnings of an XSLT execution."""
+ return self._error_log.copy()
@staticmethod
def strparam(strval):
buffer.buf = NULL
property xslt_profile:
- u"""Return an ElementTree with profiling data for the stylesheet run.
+ """Return an ElementTree with profiling data for the stylesheet run.
"""
def __get__(self):
cdef object root